Laravel 5.4 销毁开机自检功能出错



我正在处理laravel 5.4的新闻线程。我的问题是,每当用户想要删除帖子时,如果有与他具有相同id的帖子,它将删除它而不是我最初想要销毁的帖子。 但是如果没有,他可以毫无问题地删除他的帖子。例如,我的用户有一个 id4,想要删除他的 id 为12的帖子。我第一次点击我的删除链接时,它会删除id4的帖子。当这个人不再存在时,他可以用12id摧毁帖子.

控制器中的功能

/**
* Remove the specified resource from storage.
*
* @param  AppStartUpPost  $startUpPost
* @return IlluminateHttpResponse
*/
public function destroy(StartUpPost $startUpPost)
{
$post = StartUpPost::find($startUpPost);
$post->delete();
return redirect('startup/home') -> with('success', 'Post deleted !');
}

路线

Route::get('/StartUpPost/{startUpPost}/delete',[
'uses' => 'StartUpPostController@destroy',
'as'=>'startUpPost.delete'
]);

HTML 中的链接

<a href="{{route('startUpPost.delete', ['startUpPost' => $startuppost->id])}}">Delete</a>

模型

<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class StartUpPost extends Model
{
protected $table = 'start_up_posts';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'content','startup_id','image',
];
public function startup() {
return $this->belongsTo('AppStartup');
}
public function startUpComments() {
return $this->hasMany('AppStartUpComment');
}
}

我做错了什么?

您的控制器函数应如下所示:(无需再次搜索该项目,您已经在功能参数中拥有它StartUpPost $startUpPost

public function destroy(StartUpPost $startUpPost)
{
$startUpPost->delete();
return redirect('startup/home') -> with('success', 'Post deleted !');
}

在点击按钮之前检查按钮,错误必须在您的操作链接中删除帖子,检查您如何加载每个按钮

你有$startuppost->id. 那么这是哪个帖子?我想它需要第一个。问题可能出在删除$startuppost之前选择的查询中

最新更新