bookmaker table
id
name
bookmaker_user table
id
account_name
bookmaker_id
user_id
user table
id
name
User Model :
public function bookmakers(){
return $this->belongsToMany('Bookmaker', 'bookmaker_user', 'user_id', 'bookmaker_id')
->withPivot('id', 'accountname')->withTimestamps();
}
BookmakerController.php
public function update($id)
{
$bookname = Input::get('booknamemodifselect');
$accountname = Input::get('accountnamemodifinput');
$bankrollinvested = Input::get('bankrollinvestedmodifinput');
$bonus = Input::get('bonusmodifinput');
$bankrollamount = Input::get('bankrollamountmodifinput');
$bookmodif = DB::table('bookmakers')->where('name', $bookname)->first();
$bookmaker = $this->user->bookmakers()->where('bookmaker_user.id','=',$id)->first();
$bookmaker->pivot->bookmaker_id = $bookmodif->id;
$bookmaker->pivot->save();
}
$ id是帐户的ID
$ this-> user是已认证的用户。
我想通过属于用户auth的ID(我的意思是帐户ID)来更新帐户的庄家。因为用户auth具有相同庄家但帐户名不同的多个条目。它说“试图获得非对象的属性”。
总结问题下方的评论,这不是一个非常常见的数据库设计。这也意味着,改变它可能是一个好主意。通过将bookmaker_user
数据透视表转换为具有自己的模型类的完整表。原因如下:
但这不是问题所带来的真正问题,因此是这样的:
我在本地尝试过,但没有收到任何错误,但是我不会保存到数据库中。
这似乎是某种错误或意外行为。但是,一种解决方法是使用查询生成器。
我认为在这种情况下,它甚至更优雅...
$bookmodif = DB::table('bookmakers')->where('name', $bookname)->first();
if($bookmodif !== null){ // just to make sure the bookmaker exists
DB::table('bookmaker_user')
->where('id', $id)
->update(array('bookmaker_id' => $bookmodif->id);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句