Trying to get property of non-object

Route:

Route::get('/blog/page/{slug?}', 'BlogController@page')->name('page');

Controller:

 public function page($slug) {
            $pages = Page::all();
            return view('blog.pages', [
                'pages' => $pages,
                'page' => Page::where('slug', $slug)->first(),
            ]);
        }

View:

@extends('layouts.app')

@section('title'){{$page->meta_title}}@endsection
@section('meta_keyword'){{$page->meta_keyword}}@endsection
@section('meta_description'){{$page->meta_description}}@endsection

@section('content')
    <div class="container">
        <div class="row">
            <div class="col-sm-12">
                <h1>{{$page->title}}</h1>
            </div>
        </div>
    </div>
@endsection

Model:

// Mass assigned
    protected $fillable = ['id', 'title', 'slug', 'published', 'meta_title', 'meta_description', 'meta_keyword', 'published', 'created_by', 'created_at', 'updated_at', 'modified_by'];

    // Mutators
    public function setSlugAttribute($value) {
        $this->attributes['slug'] = Str::slug( mb_substr($this->title, 0, 40) . "-" . \Carbon\Carbon::now()->format('dmyHi'), '-');
    }

По итогу ошибка

Trying to get property 'meta_title' of non-object (View: /home/srb/dev/vr/resources/views/blog/pages.blade.php)

Столбец в БД создан и заполнен. Подскажите, что я делаю не так? Если во view все записать как {{$page->meta_title or ""}}, то на странице не выводятся переменные.


Ответы (0 шт):