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

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

我有一个带有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);
}

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

// 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);
}

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

kxxlusnw

kxxlusnw1#

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

public function index()
{
    $user = Auth::user();

    $customers = $user->customers;

    ...
}

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

相关问题