【发布时间】:2025-12-02 07:05:01
【问题描述】:
我有这个父子模型定义为:
class Contract extends Model
{
public function customer()
{
return $this->belongsTo('App\Customer');
}
}
在我父母的模型上,即客户我有这个:
public function contracts()
{
return $this->hasMany('App\Contract', 'customer_id', 'id');
}
在我的ContractController 上,我正在使用以下代码将我的客户及其父模型按父字段排序:
$contracts = Contract::where('status', 'Active')->join('customers', 'contracts.customer_id', '=', 'customers.id')->orderBy('customers.customer_number', 'asc')->paginate(100);
我现在的问题是我的 contract 视图,也就是说,index.blade.php 给了我一个不同的 id,但使用这个:$contracts = Contract::where('status', 'Active')->paginate(100); 工作正常。
编辑
至于合约索引视图,我有这个:
@foreach($contracts as $key => $contract)
<tr>
<td>{{ $contract->id }}</td>
<td>{{ $contract->customer ? $contract->customer->customer_number : '' }}</td>
<td>{{ $contract->customer ? $contract->customer->full_name : '' }}</td>
</tr>
@endforeach
我的问题是,这个合同 ID 显示的是不同的 ID。例如,如果在我的数据库中,ID 为 1 的合同 X 属于客户 X,我的视图会显示不同的合同 ID。
【问题讨论】:
-
在视图文件中也提供您的代码。也许您正在尝试访问错误的变量
-
不同的查询不同的结果?什么错误?
-
我的观点很简单,只是
<tr><td>{{ $contract->id }}</td><td>{{ $contract->customer ? $contract->customer->customer_number : '' }}</td></tr>在一个循环里面。