[英]How get data having relationships between tables using Laravel
我有一个API 和 Laravel ,我决定使用表之间的关系,我在所有迁移中使用这些函数将它们关联起来:
// 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 上,如何使用 function 来列出该用户**的所有客户,即替换以下代码:
// 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);
}
我的目标是在不使用条件的情况下创建相关表之间的关系,例如用户的客户**,就像我当前的代码实现一样。
有人可以帮我弄这个吗?
您可以使用关系的动态属性来访问它(并加载它):
public function index()
{
$user = Auth::user();
$customers = $user->customers;
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.