我的主表 Tickets 有一个指向另一个名为 ticket_statuses 的表的外键。我想根据外键显示来自 ticket_statuses 的状态字段。
TicketsController.php
<?php
namespace App\Http\Controllers\Users;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Ticket;
use App\TicketStatus;
use App\Models\User;
etc...
class TicketsController extends UserController
{
public function index()
{
$tickets = Ticket::paginate(25);
return view('user.tickets.index', compact('tickets'));
}
}
票证.php
class Ticket extends Model
{
// Ticket __belongs_to__ User
public function user()
{
return $this->belongsTo('App\Models\User');
}
public function ticketstatus()
{
return $this->belongsTo('App\TicketStatus');
}
}
TicketStatus.php
class TicketStatus extends Model
{
// Ticket Status __has_many__ Ticket
public function tickets()
{
return $this->hasMany('Ticket');
}
}
索引.blade.php
@foreach($tickets as $item)
<tr>
<td>{{ $item->ticket_statuses->status }}</td>
<td>{{ $item->customer }}</td>
<td>{{ $item->user->first_name }} {{ $item->user->last_name }}</td>
<td>
{!! Form::close() !!}
</td>
</tr>
@endforeach
由于 {{ $item->ticket_statuses->status }} 行,我收到错误消息。我也试过 {{ $item->ticketstatus->status }} 错误是 Trying to get property of non-object
请帮忙。谢谢
最佳答案
正如你在评论中提到的,改变
public function ticketstatus()
{
return $this->belongsTo('App\TicketStatus');
}
到
public function ticketstatus()
{
return $this->belongsTo('App\TicketStatus', '_ticket_status_id', 'id');
}
然后使用 {{ $item->ticketstatus->status }}
再试一次。通过关系,当您使用 _ticket_status_id
tickets
表中查找 ticket_status_id
列
让我们知道它是否有帮助。
关于php - 如何解决尝试在 Laravel 中获取非对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148659/