【发布时间】:2020-06-13 09:51:01
【问题描述】:
我有一个带有 Laravel 的 API,我决定使用表之间的关系,我已经在所有迁移中使用这些函数将它们关联起来:
// Migration file: 2020_05_26_185555_create_customers_table.php on line 27
$table->foreign('user_id')->references('id')->on('users');
然后我实现了如下功能: (获取与之相关的记录):
// Model app\User.php on line 80
public function customers()
{
return $this->hasMany(Customer::class);
}
在客户控制器上,如何使用上面显示的功能列出该用户**的所有客户,即替换以下代码:
// Controller Customer\CustomerController.php on line 17
public function index()
{
$user_id = Auth::id();
$customers = Customer::where('user_id', $user_id)->get();
return $this->showAll($customers, 200, $filters);
}
对于类似以下的东西(只是一个例子,它不起作用,但这是我的意思的想法):
// Controller Customer\CustomerController.php on line 17
public function index()
{
$customers = User::customers(); // Ejemplo
return $this->showAll($customers, 200, $filters);
}
我的目标是在相关表之间创建关系,例如用户的客户**,而不使用条件,就像我当前的代码实现一样。
有人可以帮我解决这个问题吗?
【问题讨论】:
-
$customers = Auth::user()->customers;应该可以完成这项工作。