如何在多对多表之间的关联表上使用save()Eloquent方法?

时间:2015-07-01 09:32:16

标签: mysql laravel-4 eloquent

我在tblItems和tblUsers之间有一个名为' tblItems_Users'但是在这个表中除了2个外键(FK_item_id和FK_user_id)之外还有3个属性。现在我正在尝试更新这些属性,但我得到了一个

Symfony \ Component \ Debug \ Exception \ FatalErrorException(E_UNKNOWN) 救命 调用未定义的方法stdClass :: save()

以下是我的控制器中发生错误的函数:

public function checkFirstName($itemId)
    {
      $item = DB::table('tblItems_Users')->where('FK_item_id', '=', $itemId)
      ->where('FK_user_id', '=', Auth::user()->PK_user_id)
      ->first();

      $item->is_checked = 1;
      $item->name_1_checked = 1;

      $item->save();

      return Redirect::route('game');   

    }

1 个答案:

答案 0 :(得分:2)

Query Builder或DB :: table语句没有save()方法。你需要使用Eloquent。

如果您还没有在模型文件夹中创建一个新的Eloquent类:

class ItemUser extends Eloquent {
    protected $table = 'tblItems_Users';
}

对查询使用eloquent

$item = ItemUser::where('FK_item_id', '=', $itemId)
      ->where('FK_user_id', '=', Auth::user()->PK_user_id)
      ->first();

$item->is_checked = 1;
$item->name_1_checked = 1;
$item->save();