繁体   English   中英

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

[英]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;

    ...
}

Laravel 7.x 文档 - Eloquent - 关系 - 关系方法与动态属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM