在Laravel中通过ID更新数据透视表

埃多法塔德
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具有相同庄家但帐户名不同的多个条目。它说“试图获得非对象的属性”。

Lukasgeiter

总结问题下方的评论,这不是一个非常常见的数据库设计。这也意味着,改变它可能是一个好主意。通过将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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更新Laravel 5中的其他数据透视表值

来自分类Dev

更新数据透视表 Laravel 5.5 中的字段

来自分类Dev

Laravel-使用数据透视表唯一的行ID从数据透视表列中获取值

来自分类Dev

Laravel数据透视表ID列

来自分类Dev

Laravel 4:数据透视表或ID

来自分类Dev

从laravel中的数据透视表访问数据

来自分类Dev

与其更新数据透视表中的数据,不如在laravel中插入新记录

来自分类Dev

更新数据透视表

来自分类Dev

您可以使用WHERE逻辑通过Laravel中的数据透视表获取数据吗?

来自分类Dev

Laravel中的数据透视表选择

来自分类Dev

Laravel总结数据透视表中的字段

来自分类Dev

如何在laravel中更新多态多对多数据透视记录(使用确切的数据透视id)?

来自分类Dev

如何在laravel中更新多态多对多数据透视记录(使用确切的数据透视id)?

来自分类Dev

Laravel通过数据透视表查询数据

来自分类Dev

Laravel通过数据透视表查询数据

来自分类Dev

Laravel4中有很多通过数据透视表

来自分类Dev

Laravel 中的复杂关系(通过数据透视表 hasManyThrough)

来自分类Dev

laravel4更新数据透视表中的其他列

来自分类Dev

如何在Laravel 5中使用Eloquent更新数据透视表

来自分类Dev

通过数据透视表 Octobercms 从表中检索条目

来自分类Dev

Laravel 4-多对多-数据透视表未更新

来自分类Dev

使用updateExistingPivot更新数据透视表-Laravel 8

来自分类Dev

雄辩的表和数据透视表在Laravel 4中

来自分类Dev

雄辩的表和数据透视表在Laravel 4中

来自分类Dev

数据透视表源更新

来自分类Dev

Laravel从数据透视表中仅获取certrain数据

来自分类Dev

Laravel-仅从数据透视表中获取数据

来自分类Dev

将数据插入laravel中的数据透视表

来自分类Dev

尝试在Resource Laravel中返回数据透视表数据

Related 相关文章

  1. 1

    更新Laravel 5中的其他数据透视表值

  2. 2

    更新数据透视表 Laravel 5.5 中的字段

  3. 3

    Laravel-使用数据透视表唯一的行ID从数据透视表列中获取值

  4. 4

    Laravel数据透视表ID列

  5. 5

    Laravel 4:数据透视表或ID

  6. 6

    从laravel中的数据透视表访问数据

  7. 7

    与其更新数据透视表中的数据,不如在laravel中插入新记录

  8. 8

    更新数据透视表

  9. 9

    您可以使用WHERE逻辑通过Laravel中的数据透视表获取数据吗?

  10. 10

    Laravel中的数据透视表选择

  11. 11

    Laravel总结数据透视表中的字段

  12. 12

    如何在laravel中更新多态多对多数据透视记录(使用确切的数据透视id)?

  13. 13

    如何在laravel中更新多态多对多数据透视记录(使用确切的数据透视id)?

  14. 14

    Laravel通过数据透视表查询数据

  15. 15

    Laravel通过数据透视表查询数据

  16. 16

    Laravel4中有很多通过数据透视表

  17. 17

    Laravel 中的复杂关系(通过数据透视表 hasManyThrough)

  18. 18

    laravel4更新数据透视表中的其他列

  19. 19

    如何在Laravel 5中使用Eloquent更新数据透视表

  20. 20

    通过数据透视表 Octobercms 从表中检索条目

  21. 21

    Laravel 4-多对多-数据透视表未更新

  22. 22

    使用updateExistingPivot更新数据透视表-Laravel 8

  23. 23

    雄辩的表和数据透视表在Laravel 4中

  24. 24

    雄辩的表和数据透视表在Laravel 4中

  25. 25

    数据透视表源更新

  26. 26

    Laravel从数据透视表中仅获取certrain数据

  27. 27

    Laravel-仅从数据透视表中获取数据

  28. 28

    将数据插入laravel中的数据透视表

  29. 29

    尝试在Resource Laravel中返回数据透视表数据

热门标签

归档