访问第二个表

时间:2016-08-22 15:03:40

标签: laravel laravel-5.2

我正在检索像这样的项目列表

$projects = Project::select('id', 'projectnName', 'projectContact', 'deploymentDate')->get();

在选择部分中,我可以添加client_id,它将返回客户端的ID。但是,这与我的clients表中的id相关联,我想选择客户端名称。我一直在尝试以下方面 在选择之前

join('clients', 'clients.id', '=', 'projects.client_id')

但这似乎失败了。如何通过clientName访问client_id

由于

2 个答案:

答案 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;

    }
}