簡體   English   中英

Facade\\Ignition\\Exceptions\\ViewException?

[英]Facade\Ignition\Exceptions\ViewException?

我正在關注 laracast 並達到了我無法弄清楚的部分。 嘗試顯示標題{{$blog->title}} ,出現以下錯誤:

試圖獲取非對象的屬性“標題”(視圖:/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);
    }
}

顯示刀片

@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
{
    //
}

數據庫

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

更新

public function show($id)  {

public function show(Blog $blog) {

你確定你所有的blogs都有title屬性嗎? 似乎有些博客缺少它。 如果是這種情況,您可以在刀片中使用一些三元運算符來檢查數據是否存在,這樣就不會出現異常。 簡單的例子:

{{$blog->title ? $blog->title : 'No title' }}

這最終成為一個愚蠢的問題,因為我創建了兩個帶有 $id 1 和 2 的帖子,它正在尋找那些特定的 ID。 一旦我輸入了 $id 為 1 或 2 的正確網址,它就會在博客中找到“標題”ID。

首先你必須編輯這一行use App\\blog; use App\\Blog; 然后嘗試像這樣共享變量return view('blogs.show', compact('blog')); return view('blogs.show', ['blog' => $blog]);

您可以使用

數據庫:查詢生成器

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;

class BlogsController extends Controller
{
    public function show($id)
    {
        $blog = DB::table('blogs')->find($id);

        if($blog){
            return view('blogs.show')->with('blog', $blog);
        }
        dd( 'There is no post with this id='.$id);

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM