如何使用laravel获取表之间具有关系的数据

j0pj023g  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(429)

我有一个带有laravel的api,我决定使用表之间的关系,我在所有迁移中都使用这些函数来关联它们:

  1. // Migration file: 2020_05_26_185555_create_customers_table.php on line 27
  2. $table->foreign('user_id')->references('id')->on('users');

然后我实现了如下函数:(获取与之相关的记录):

  1. // Model app\User.php on line 80
  2. public function customers()
  3. {
  4. return $this->hasMany(Customer::class);
  5. }

在customers controller上,如何使用上面显示的函数列出该用户的所有客户端**,即替换以下代码:

  1. // Controller Customer\CustomerController.php on line 17
  2. public function index()
  3. {
  4. $user_id = Auth::id();
  5. $customers = Customer::where('user_id', $user_id)->get();
  6. return $this->showAll($customers, 200, $filters);
  7. }

对于以下内容(只是一个示例,它不起作用,但它是​​我的意思是):

  1. // Controller Customer\CustomerController.php on line 17
  2. public function index()
  3. {
  4. $customers = User::customers(); // Ejemplo
  5. return $this->showAll($customers, 200, $filters);
  6. }

我的目标是在相关表(例如,用户的客户机**)之间创建关系,而不使用条件,就像我当前的代码实现一样。
有人能帮我吗?

kxxlusnw

kxxlusnw1#

您可以使用关系的动态属性来访问它(并加载它):

  1. public function index()
  2. {
  3. $user = Auth::user();
  4. $customers = $user->customers;
  5. ...
  6. }

laravel7.x文档-雄辩-关系-关系方法与动态属性

相关问题