我跟在一起,已经到了我想不出的程度。当试图显示标题{{$blog->title}}时,我得到以下错误:
试图获取非对象的属性“标题”(View: /Users/***/Desktop/DigitalCulture/DG/resources/views/blogs/show.blade.php)“)
数据库:
public function up()
{
Schema::create('blogs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('title');
$table->text('excerpt');
$table->text('body');
$table->timestamps();
});
}路由:
Route::get('/', function () {
return view('welcome');
});
Route::get('/about', function () {
$blogs = DB::table('blogs')->take(3)->latest()->get();
return view('/about', [
'blogs' => $blogs
]);
});
Route::get('/blogs/{blog}', 'BlogsController@show');控制器
<?php
namespace App\Http\Controllers;
use App\blog;
use Illuminate\Http\Request;
class BlogsController extends Controller
{
public function show($id)
{
$blog = Blog::find($id);
if( is_null($blog) ){
dd( 'There is no post with this id='.$id);
}
return view('blogs.show')->with('blog', $blog);
}
}Show.blade
@extends ('layout')
@section ('content')
<div id="wrapper">
<div id="page" class="container">
<div id="content">
<div class="title">
<h2> {{$blog->title}} </h2>
</div>
<p><img src="/images/banner.jpg" alt="" class="image image-full" /> </p>
<p>
{{$blog->body}}
</p>
</div>
</div>
</div>
@endsection博客PHP
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Blog extends Model
{
//
}数据库
发布于 2020-02-02 22:54:49
更新
public function show($id) {至
public function show(Blog $blog) {发布于 2020-02-03 08:26:10
您确定所有的blogs都有title属性吗?似乎有些博客错过了它。如果是这样的话,您可以在刀片中使用一些三元操作符来检查数据是否存在,这样就不会有异常。简单的例子:
{{$blog->title ? $blog->title : 'No title' }}发布于 2020-02-02 18:56:07
首先,您必须将这一行use App\blog;编辑为use App\Blog;,然后尝试共享类似于return view('blogs.show', compact('blog'));或return view('blogs.show', ['blog' => $blog]);的变量。
https://stackoverflow.com/questions/60029390
复制相似问题