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是用户身份验证。
我想根据用户身份验证的ID(我的意思是帐户ID)更新帐户的博彩公司。因为用户auth具有多个具有相同博彩公司但具有不同帐户名称的条目。 它说'试图获得非对象的财产'。
答案 0 :(得分:3)
总结问题下面的评论,它不是一个非常常见的数据库设计。这也意味着改变它可能是一个好主意。通过将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);
}
答案 1 :(得分:0)
我一直在处理这件事。你可以这样做:
getAllStageItems(){
this.etprofile.getetudiant().subscribe((data: any) => {
this.etudiantstage = data
console.log(this.etudiantstage);
// <= getting data and execute these logic here
console.log(this.etudiantstage);
for(let item in this.etudiantstage){
console.log(this.etudiantstage[item].cin);
if(this.etudiantstage[item].cin == this.cin)
this.validerAffiche = true;}
});
}