尝试获取非对象的属性“名称”(视图:C:\ xampp \ htdocs \ laravel \ resources \ views \ Faculties \ show.blade.php)

时间:2019-12-26 16:40:52

标签: laravel

这是我的模范学院

<?php


namespace App;

use Illuminate\Database\Eloquent\Model;

class Faculty extends Model { protected $fillable = [ 'name', 'id', 'date_of_birth', 'age', 'qualification', 'religion', 'gender', 'phone_number', 'address', 'blood_group', 'email' ]; }

这是我的FacultiesController

namespace App\Http\Controllers;

use App\Faculty;
use Illuminate\Http\Request;

class FacultiesController extends Controller
{
public function show(Faculty $faculty)
{
    $faculties = Faculty::where('id',$faculty->id)->first();

    return view('Faculties.show',['Faculty'=>$faculties]);
}
}

这是我的路线web.php

Route::resource('Faculties','FacultiesController');

这是我的刀片文件show.blade.php

<ul>

    <li class="list-group-item">{{ $Faculty->name }}</a></li>

</ul>

1 个答案:

答案 0 :(得分:0)

这里有几个问题。

首先,这是不必要的:

public function show(Faculty $faculty)
{
    $faculties = Faculty::where('id',$faculty->id)->first();

路由逻辑已经将Faculty模型传递给您的函数,因此您要查找两次(并且您也可以使用Faculty::find()而不是where()->first()来简化这种逻辑)。

这应该可以正常工作:

public function show(Faculty $faculty)
{
    return view('Faculties.show',['Faculty'=>$faculty]);
}

如果没有,则可能是数据库中没有与该ID相匹配的Faculty模型。