我正在检索像这样的项目列表
$projects = Project::select('id', 'projectnName', 'projectContact', 'deploymentDate')->get();
在选择部分中,我可以添加client_id
,它将返回客户端的ID。但是,这与我的clients表中的id相关联,我想选择客户端名称。我一直在尝试以下方面
在选择之前
join('clients', 'clients.id', '=', 'projects.client_id')
但这似乎失败了。如何通过clientName
访问client_id
?
由于
答案 0 :(得分:1)
在select语句中添加clients.name(table_name.column_name),如下所示:
$projects = Project::select('clients.name','clients.id', 'projectnName', 'projectContact', 'deploymentDate')
->join('clients', 'clients.id', '=', 'projects.client_id')
->get();
答案 1 :(得分:1)
Laravel relationships很容易做到这一点。
您应该在Client
目录中创建app
模型:
namespace App;
class Client extends Eloquent
{
//
}
然后,在您的Project
模型中,定义client()
方法:
class Project extends Eloquent
{
public function client()
{
return $this->belongsTo(Client::class);
}
}
然后,当您查询Project
模型时:
public function index()
{
$projects = Project::with('client')->get();
foreach ($projects as $project) {
// Retrieve the client name of the project:
$client = $project->client->clientName;
}
}