【问题标题】:laravel Type error: Argument 1 passed to Illuminate\Database\Eloquent\Model::save() must be of the type array, object givenlaravel 类型错误:传递给 Illuminate\Database\Eloquent\Model::save() 的参数 1 必须是数组类型,给定对象
【发布时间】:2017-12-17 00:15:14
【问题描述】:

我有一个实体,每个实体都有一个地址。

我有 2 个关系表,例如:

实体:

protected $table = 'entities';
public $timestamps = true;

use Searchable;

public function address()
{
    return $this->hasOne('App\Address', 'entity_id');
}

地址:

protected $table = 'address';
public $timestamps = true;

public function entity()
{
    return $this->belongsTo('App\Entity', 'id');
}

和我的控制器:

 public function update(EntityRequestUpdate $request)
    {
        $id = $request->input('entity_id');
        $entity = Entity::with('address')
            ->find($id);
        $entity->name = $request->input('name');
        $entity->type = $request->input('type');
        $entity->email = $request->input('email');
        $entity->twitter_entity = $request->input('twitter');
        $entity->facebook_entity = $request->input('facebook');
        $entity->instagram_entity = $request->input('instagram');
        $entity->google_places = $request->input('google');
        $entity->address->building_name = $request->input('address1');
        $entity->address->street = $request->input('address2');
        $entity->address->town = $request->input('town');
        $entity->address->city = $request->input('city');
        $entity->address->postcode = $request->input('postcode');
        $entity->address->telephone = $request->input('telephone');
        $entity->address->save($entity);
        $entity->save();

        $result = $entity->save();

        if($result){
            $message = 'success';
        }else{
            $message = 'error';
        }
        return redirect()->back()->withInput()->with('message', $message);
    }

错误信息是:

类型错误:传递给 Illuminate\Database\Eloquent\Model::save() 的参数 1 必须是数组类型,给定对象,在 C:\xampp\htdocs\laravel\app\Http\Controllers\EntityController 中调用.php 在第 146 行

我该如何解决这个问题?

【问题讨论】:

    标签: laravel laravel-5 eloquent


    【解决方案1】:

    我认为您只需要使用不带任何参数的save() 方法即可。我已经在php artisan tinker 中尝试过,结构相同。在我得到同样的错误之后,我尝试删除 save() 方法中的 $entity 参数:

    // After update, you should only use save() not save($entity)
    $entity->address->save(); 
    

    我希望我能对你的问题给出正确的答案:-D

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      • 2020-02-23
      • 1970-01-01
      相关资源
      最近更新 更多