Laravel 拉威尔:我如何从不同的表中获取最后一个字段?

Laravel 拉威尔:我如何从不同的表中获取最后一个字段?,laravel,Laravel,我有两个表,即Pt表和Aktivitas表。在索引视图中,我从两个表中调出数据。表pt中的列名pt。以及活动表中的最后一个更新和用户列。一个pt名称有很多活动,因此数据库中有许多来自更新的_at&user列的内容。 我的问题是,如何显示最新更新的_at&用户?因为我已经尝试过了,但是我的索引总是显示第一个数据的最后一次更新和用户 我的刀锉 @foreach($pt_list as $pt) <tr> <td>{{ $no }}</td> <td>

我有两个表,即Pt表和Aktivitas表。在索引视图中,我从两个表中调出数据。表pt中的列名pt。以及活动表中的最后一个更新和用户列。一个pt名称有很多活动,因此数据库中有许多来自更新的_at&user列的内容。 我的问题是,如何显示最新更新的_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->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