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 ""}}, то на странице не выводятся переменные.