我有三个表:client、project 和 client_project。
我想在一个 View 中显示一个客户的所有项目。
代码解释如下:
<?php
public function editClient($id)
{
$client = Client::find($id);
// I get an array with client_id and project_id of the clients
// which is the same I pass in the URL.
$client_project = DB::table('client_project')->where('client_id',$id)->get();
// return view('cms.public.views.clients.editclient')->withClient($client);
}
现在我想在表 projects 的字段 id 与 $client_project 数组中的 project_id 值相同时显示项目名称。
如果它只有一个值,下面是如何做到这一点的示例,也许可以提供帮助。
public function editClient($id)
{
$client = Client::find($id);
$client_project = DB::table('client_project')->where('client_id',$id)->first()->project_id;
$project = DB::table('projects')->where('id',$client_project)->first();
return $project;
}
最佳答案
使用一对多关系。
在 Client.php 模型中
public function projects()
{
return $this->belongsTo('App\Project', 'client_id');
}
在你的 Project.php 模型中
public function client()
{
return $this->hasMany('App\Client', 'client_id');
}
现在打电话
$client_project = Client::find($id)->projects;
您将在此处获得详细信息 https://laravel.com/docs/5.5/eloquent-relationships#one-to-many
关于php - 有数组时如何进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47039549/