php - 如何解决尝试在 Laravel 中获取非对象的属性?

标签 php html mysql css laravel

我的主表 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

时,laravel 正在您的 tickets 表中查找 ticket_status_id

让我们知道它是否有帮助。

关于php - 如何解决尝试在 Laravel 中获取非对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40148659/

相关文章:

php - Laravel 按年份和月份生成存档帖子

php - 如何在 Travis CI 上的 PHP 容器上安装特定的 node.js 版本?

php - 设置 PayPal PHP 应用程序上线

html - 如何在两列布局中使右侧边栏静态

javascript - Contenteditable 防止插入符号放置在某个元素之后

mysql - SQL Workbench 中的数据库设计

php - 我的代码意外结束

javascript - 为什么 jquery 似乎没有应用特定于 vendor 的 css 属性?

mysql - 存储代码的列类型

php - 在 mysql 中选择查询具有限制的批量记录