Я показывал свои сообщения, используя post_id, я следил за текущей документацией, чтобы показывать свои сообщения с помощью slug. Когда я создаю сообщение, я вижу, что слаг также добавляется в базу данных. Когда я нажимаю на свою ссылку, чтобы просмотреть сообщение, я перехожу к публикации с помощью slug. Однако я ничего не показываю, кроме этой ошибки, которую я никогда раньше не видел:
Свойство [название] не существует в этом экземпляре коллекции. (Просмотр: C: \ xampp \ htdocs \ blog \ resources \ views \ post.blade.php)
Это моя модель поста:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Cviebrock\EloquentSluggable\Sluggable;
class Post extends Model
{
use Sluggable;
public function sluggable()
{
return [
'slug' => [
'source' => 'title'
]
];
}
protected $fillable = ['title', 'content', 'user_id','category_id','photo_id'];
public function category(){
return $this->belongsTo('App\Category');
}
public function user(){
return $this->belongsTo('App\User');
}
public function photo(){
return $this->belongsTo('App\Photo');
}
public function comments(){
return $this->hasMany('App\Comment');
}
}
Мой маршрут:
Route::get('/post/{slug}', ['as'=>'home.post',
uses'=>'AdminPostsController@post']);
Функция публикации из AdminPostsController выглядит так: ´
public function post($slug){
$post = Post::whereSlug($slug)->get();
// $posts = Post::all();
$categories = Category::all();
return view('post', compact('post','categories'));
}
В представлении у меня есть это:
<h1>{{$post->title}}</h1>