Laravel 拉威尔:我如何从不同的表中获取最后一个字段?
我有两个表,即Pt表和Aktivitas表。在索引视图中,我从两个表中调出数据。表pt中的列名pt。以及活动表中的最后一个更新和用户列。一个pt名称有很多活动,因此数据库中有许多来自更新的_at&user列的内容。 我的问题是,如何显示最新更新的_at&用户?因为我已经尝试过了,但是我的索引总是显示第一个数据的最后一次更新和用户 我的刀锉Laravel 拉威尔:我如何从不同的表中获取最后一个字段?,laravel,Laravel,我有两个表,即Pt表和Aktivitas表。在索引视图中,我从两个表中调出数据。表pt中的列名pt。以及活动表中的最后一个更新和用户列。一个pt名称有很多活动,因此数据库中有许多来自更新的_at&user列的内容。 我的问题是,如何显示最新更新的_at&用户?因为我已经尝试过了,但是我的索引总是显示第一个数据的最后一次更新和用户 我的刀锉 @foreach($pt_list as $pt) <tr> <td>{{ $no }}</td> <td>
@foreach($pt_list as $pt)
<tr>
<td>{{ $no }}</td>
<td>{{ $pt->kode_pt }}</td>
<td>{{ $pt->nama_pt }}</td>
<td>{{ $pt->status }}</td>
<td>{{ $pt->aktivitas->updated_at }} </td>
<td>{{ $pt->aktivitas->user }}</td>
Pt模型
class Pt extends Model
{
const created_at = 'create_time';
const updated_at = 'update_time';
protected $table = 'pt';
protected $fillable = [
'kode_pt',
'nama_pt',
'status',
'updated_at'
];
public function aktivitas()
{
return $this->hasOne('App\Aktivitas')->withDefault();
}
}
便携式测试控制器
public function index (Request $request)
{
$pt_list = Pt::all();
return view('pt.index', compact('pt_list'));
}
您可以在Pt模型上建立另一个关系,以获得最新的Aktivita
公共职能aktivitas()
{
返回$this->hasMany('App\Aktivitas')->withDefault();
}
公共职能部门
{
返回$this->hasOne('App\Aktivitas')->latest()->withDefault();
}
然后,您可以在控制器方法查询中使用这个hasOne关系
公共功能索引(请求$Request)
{
$pt_list=pt::with('latestativita')->all();
返回视图('pt.index',压缩('pt_list');
}
修改刀片代码段以使用新关系
@foreach($pt_list as $pt)
<tr>
<td>{{ $no }}</td>
<td>{{ $pt->kode_pt }}</td>
<td>{{ $pt->nama_pt }}</td>
<td>{{ $pt->status }}</td>
<td>{{ $pt->latestAktivita->updated_at }} </td>
<td>{{ $pt->latestAktivita->user }}</td>
</tr>
@endforeach
@foreach($pt\u列表为$pt)
{{$no}
{{$pt->kode_pt}
{{$pt->nama_pt}
{{$pt->status}
{{$pt->latestAktivita->updated_at}
{{$pt->latestativita->user}
@endforeach
欢迎来到stackoverflow。您是否正在尝试获取类似于Pt::latest()->first()的内容代码>?@BABAKASHRAFI是的,还是不能。尝试获取非对象的属性“kode_pt”谢谢您的回答。它起作用了!!祝GBU快乐!它起作用了。我更新了刀片上的最新记录。但是,如果我使用之前插入的相同id更新第一条记录,则该记录将被更新,但不会返回到刀片视图。它只显示最新记录,而不显示更新记录的最新记录。请告诉我怎么做如果你总是想要最新更新的记录,那么你可以用default()指定像return$this->hasOne('App\Aktivitas')->latest('updated_at')->
@foreach($pt_list as $pt)
<tr>
<td>{{ $no }}</td>
<td>{{ $pt->kode_pt }}</td>
<td>{{ $pt->nama_pt }}</td>
<td>{{ $pt->status }}</td>
<td>{{ $pt->latestAktivita->updated_at }} </td>
<td>{{ $pt->latestAktivita->user }}</td>
</tr>
@endforeach