首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >外观\点火\异常\视图异常?

外观\点火\异常\视图异常?
EN

Stack Overflow用户
提问于 2020-02-02 18:45:59
回答 4查看 2.8K关注 0票数 0

我跟在一起,已经到了我想不出的程度。当试图显示标题{{$blog->title}}时,我得到以下错误:

试图获取非对象的属性“标题”(View: /Users/***/Desktop/DigitalCulture/DG/resources/views/blogs/show.blade.php)“)

数据库:

代码语言:javascript
复制
 public function up()
    {
        Schema::create('blogs', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('title');
            $table->text('excerpt');
            $table->text('body');
            $table->timestamps();
        });
    }

路由:

代码语言:javascript
复制
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');

控制器

代码语言:javascript
复制
<?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

代码语言:javascript
复制
@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

代码语言:javascript
复制
 <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Blog extends Model
{
    //
}

数据库

[https://i.stack.imgur.com/yswTb.png][1]

EN

回答 4

Stack Overflow用户

发布于 2020-02-02 22:54:49

更新

代码语言:javascript
复制
public function show($id)  {

代码语言:javascript
复制
public function show(Blog $blog) {
票数 0
EN

Stack Overflow用户

发布于 2020-02-03 08:26:10

您确定所有的blogs都有title属性吗?似乎有些博客错过了它。如果是这样的话,您可以在刀片中使用一些三元操作符来检查数据是否存在,这样就不会有异常。简单的例子:

代码语言:javascript
复制
{{$blog->title ? $blog->title : 'No title' }}
票数 0
EN

Stack Overflow用户

发布于 2020-02-02 18:56:07

首先,您必须将这一行use App\blog;编辑为use App\Blog;,然后尝试共享类似于return view('blogs.show', compact('blog'));return view('blogs.show', ['blog' => $blog]);的变量。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60029390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档