Php 如何修复传递给App\Http\Controllers\Posts\PostsController::show()的参数2必须是App\Post的实例,字符串为
我是新来的。你能帮助我吗?我不明白问题出在哪里: 第2项论点已转交立法局 App\Http\Controllers\Posts\PostsController::show()必须是实例 App\Post的名称,给定字符串 后置控制器Php 如何修复传递给App\Http\Controllers\Posts\PostsController::show()的参数2必须是App\Post的实例,字符串为,php,laravel,Php,Laravel,我是新来的。你能帮助我吗?我不明白问题出在哪里: 第2项论点已转交立法局 App\Http\Controllers\Posts\PostsController::show()必须是实例 App\Post的名称,给定字符串 后置控制器 public function show( Category $category , Post $post ) { return view('posts.post',[ 'post' => $post,
public function show( Category $category , Post $post )
{
return view('posts.post',[
'post' => $post,
]);
}
模型Post.php
class Post extends Model
{
protected $fillable = ['user_id','category_id','name','slug','body'];
protected $with = ['user','category'];
protected static function boot()
{
parent::boot(); // TODO: Change the autogenerated stub
self::creating(function($model){
$model->slug = str::slug($model->name);
});
}
public function path()
{
return "/blog/{$this->category->slug}/{$this->id}";
}
public function user ()
{
return $this->belongsTo(User::class);
}//
public function category ()
{
return $this->belongsTo(category::class);
}
}
Web.php
route::group(['namespace'=>'Posts','prefix' => 'blog'], function (){
route::get('','PostsController@index')->name('blog');
route::get('{Category}','PostsController@index');
route::get('{Category}/{post}','PostsController@show')->name('post');
});
公共功能展示(类别$Category,帖子$Post)
上行表示,show
函数接收的第一个参数将是Category
的实例,第二个参数将是Post
因此,在使用路线时,您需要小心:
route::get('{Category}/{post}','PostsController@show')->name('post');
始终满足这些条件
如果不确定,则只需删除类型转换,以便参数可以是任何类型,如下所示:
public function show ($category, $post)
更改管线中的参数。将类别
更改为类别
Route::get('{category}/{post}','PostsController@show')->name('post');
或者使这两个参数都以大写字母开头
Route::get('{Category}/{Post}','PostsController@show')->name('post');
或者第一个以小写字母开头
Route::get('{category}/{Post}','PostsController@show')->name('post');