问题描述
早上/下午/晚上好!
User.PHP
public function getRouteKeyName()
{
return 'user_name';
}
public function posts()
{
return $this->hasMany(Post::class,'by_id','id');
}
我的用户表中有两条记录
|--------------------------------------------|
| id | user_name | ... | ... |
|--------------------------------------------|
| 1 | megamanx | ... | ... |
| 2 | black_zero | ... | ... | // Edited
Post.PHP
public function getRouteKeyName()
{
return 'slug';
}
public function by()
{
return $this->belongsTo(User::class,'id');
}
我在帖子表中有一条记录
|----------------------------------------------------|
| id | by_id | slug | ... |
|----------------------------------------------------|
| 1 | 1 | test-first-post | ... |
在我的路线上
Route::group(['prefix' => '{user}',function () {
Route::get('/',function (User $user) {
return View::make('user.index',compact('user'));
});
Route::get('/{post}',function (User $user,Post $post) {
return View::make('post.index',compact('user','post'));
});
});
如您所见,我对用户user_name
和帖子slug
使用路由模型绑定
因此,当我访问路线时,例如:
127.0.0.1:8000/megamanx/test-first-post
// it return the correct owner
127.0.0.1:8000/black_zero/test-first-post
// hey you don't own that post!
所有者的帖子名称更改为black_zero,但他不拥有该帖子
那么如何解决呢?我想要当用户尝试将user_name
更改为其他内容时,返回404。因为只有用户megamanx
拥有帖子test-first-post
我一直对批评家开放,因为我想成为一个更好的开发人员,如果以上方法(路线,模型等)有任何错误,请纠正我!,谢谢(·∀·)ノ>
对不起,英语不好( ̄▽ ̄ *)ゞ
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)