【问题标题】:Attempt to assign property of a non-object尝试分配非对象的属性
【发布时间】:2019-03-16 14:29:39
【问题描述】:

我想用这些代码将数据保存到表中

create.blade.php

<div class="row">
        <div class="col-md-4"></div>
        <div class="form-group col-md-4">
            <label for="Name"> City Name:</label>
            <input type="text" class="form-control" name="city_name">
        </div>
    </div>

CityController.php

  public function store(Request $request)
{

    $options = array();

    $options->city_name=$request->get('city_name');

    $attributes  =array('city_name');


    $table = 'cities';
    (new City())->store($table,$attributes,$options);
    return redirect('cities')->with('success','Information has been  inserted');
}

我的模型是 City.php

  public function store($table,$attributes,$options)
{
    (new Root())->store($table,$attributes,$options);
}

带有根模型Root.php

    public function store($table ,$attributes, $options)  {

    $value = array();

    foreach($attributes as $key=>$data)
    {
        $value[$data] = $options[$key];
    }
    DB::table($table)->insert($value);
}

但是当我在创建视图中按下提交按钮时给我

错误异常 (E_WARNING) 尝试分配非对象的属性“city_name”

我该如何解决这个问题?

【问题讨论】:

  • $options = array(); $options-&gt;city_name。您将 $options 初始化为一个数组,然后尝试将其用作一个对象。
  • 你的意思是$options = new stdClass;
  • 这意味着模型没有范围
  • 我如何在模型stackoverflow.com/users/5212418/vasim-shaikh上设置范围@

标签: php mysql laravel view model


【解决方案1】:

您不能将数组与对象访问器一起使用。在您的控制器中,它应该是:

$options = array();

$options['city_name'] = $request->get('city_name');

$attributes = array('city_name');

【讨论】:

  • 我使用这种方式,但我收到此错误,将我重定向到根模型 ErrorException (E_NOTICE) Undefined offset: 0
猜你喜欢
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 2011-04-16
相关资源
最近更新 更多