所以我有一个客户端模型和一个风险类别模型。关系如下所示,表格遵循常规约定:
//Client.php
public function riskCategory()
{
return $this->belongsTo('RiskCategory');
}
//RiskCategory.php
public function clients()
{
return $this->hasMany('Client');
}
我想通过id查询客户端,同时获取风险类别数据。
如果我使用Client::find($id);
,我会在clients
表中获取该ID的所有字段,如果我Client::find($id)->riskcategory;
,我只会获得风险类别表的字段。
有没有办法一次从两个表中获取字段?即如果我用Id 175查询客户端,我会在同一查询中获得该客户的所有客户字段(姓名,年龄,地址等)和风险类别?
答案 0 :(得分:5)
您可以通过多种方式将风险类别中的数据添加到用户。取决于您希望如何使用它。
将客户端数据用作数组:
// get the client with ID 2 and eager load the riskcategory relation.
$client_data = Client::with('riskcategory')->find(2)->toArray();
将客户数据用作Eloquent:
// get the client with ID 2 and eager load the riskcategory relation.
$client = Client::with('riskcategory')->find(2);
有关预先加载的详细信息:Eager loading info
答案 1 :(得分:1)
只需使用变量
$client = Client::with('riskCategory')->find($id); // eager loading
echo $client->name;
echo $client->riskcategory;