Laravel 访问 blade 中的外键 table 列
Laravel access foreign key table column in blade
到目前为止,我如何使用 blade 中的外键访问 table 列?我有这个,但它不起作用。
询价型号/关系
public function client()
{
return $this->belongsTo(Client::class);
}
public function device()
{
return $this->belongsTo(Device::class);
}
客户端模型
public function inquiry()
{
return $this->hasMany(Inquiry::class);
}
public function devices()
{
return $this->hasMany(Device::class);
}
设备型号
public function inquiry()
{
return $this->hasMany(Inquiry::class);
}
控制器
public function index()
{
$inquiries = Inquiry::all();
return view('stream.index', compact('inquiries'));
}
查看
@foreach($inquiries as $inquiryKey => $inquiryValue)
<tr>
// stream id is the foreign that table has a column with names ...
<th scope="row">{{ $inquiryValue->stream_id }}</th> // works
<th scope="row">{{ $inquiryValue->stream_id->name }}</th> // does not work -> trying to get property of none object
您无法访问 stream_id
的属性 name
,它只是一个整数,您可以尝试 $inquiryValue->client->name
或者我认为 $inquiryValue->client->first()->name
一定要让 Laravel 知道 stream_id
是用于您的关系的密钥。
你应该试试这个例子:
更新答案
控制器
public function index()
{
$inquiries = Inquiry::all();
return view('stream.index', compact('inquiries'));
}
查看文件
@foreach($inquiries as $inquiryKey => $inquiryValue)
<tr>
// stream id is the foreign that table has a column with names ...
<th scope="row">{{ $inquiryValue->client->name }}</th> // works
</tr
@endforeach
如果你把它命名为 stream_id 比我认为你有一个 table 名字更好 streams,如果您想从查询中获取客户数据,那么您应该在 inquiry table 中包含 client_id 列,设备相同,将 device_id 列添加到您的 inquiry table
获取方式:
@foreach($inquiries as $inquiryKey => $inquiryValue)
{{$inquiryValue->client->name}}
{{$inquiryValue->device->name}}
@endforeach
到目前为止,我如何使用 blade 中的外键访问 table 列?我有这个,但它不起作用。
询价型号/关系
public function client()
{
return $this->belongsTo(Client::class);
}
public function device()
{
return $this->belongsTo(Device::class);
}
客户端模型
public function inquiry()
{
return $this->hasMany(Inquiry::class);
}
public function devices()
{
return $this->hasMany(Device::class);
}
设备型号
public function inquiry()
{
return $this->hasMany(Inquiry::class);
}
控制器
public function index()
{
$inquiries = Inquiry::all();
return view('stream.index', compact('inquiries'));
}
查看
@foreach($inquiries as $inquiryKey => $inquiryValue)
<tr>
// stream id is the foreign that table has a column with names ...
<th scope="row">{{ $inquiryValue->stream_id }}</th> // works
<th scope="row">{{ $inquiryValue->stream_id->name }}</th> // does not work -> trying to get property of none object
您无法访问 stream_id
的属性 name
,它只是一个整数,您可以尝试 $inquiryValue->client->name
或者我认为 $inquiryValue->client->first()->name
一定要让 Laravel 知道 stream_id
是用于您的关系的密钥。
你应该试试这个例子:
更新答案
控制器
public function index()
{
$inquiries = Inquiry::all();
return view('stream.index', compact('inquiries'));
}
查看文件
@foreach($inquiries as $inquiryKey => $inquiryValue)
<tr>
// stream id is the foreign that table has a column with names ...
<th scope="row">{{ $inquiryValue->client->name }}</th> // works
</tr
@endforeach
如果你把它命名为 stream_id 比我认为你有一个 table 名字更好 streams,如果您想从查询中获取客户数据,那么您应该在 inquiry table 中包含 client_id 列,设备相同,将 device_id 列添加到您的 inquiry table
获取方式:
@foreach($inquiries as $inquiryKey => $inquiryValue)
{{$inquiryValue->client->name}}
{{$inquiryValue->device->name}}
@endforeach