Php Laravel删除论坛的一个线程
我已经搜索并尝试了许多类似案例的解决方案,但都不适用于我的案例。我对拉雷维尔还是个新手,不太了解雄辩。我正在尝试删除一个论坛的帖子,请帮忙 这是删除线程的路径:Php Laravel删除论坛的一个线程,php,laravel,eloquent,laravel-5.5,Php,Laravel,Eloquent,Laravel 5.5,我已经搜索并尝试了许多类似案例的解决方案,但都不适用于我的案例。我对拉雷维尔还是个新手,不太了解雄辩。我正在尝试删除一个论坛的帖子,请帮忙 这是删除线程的路径: Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [ 'uses' => 'ForumsController@deleteThread', 'as' => 'thread.delete']); 这是函数(我不知道如何获取线程id): 这是删除按钮: <
Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [
'uses' => 'ForumsController@deleteThread',
'as' => 'thread.delete']);
这是函数(我不知道如何获取线程id):
这是删除按钮:
<a href="{{ route('thread.delete', ['forum_id' => $forum->id, 'thread_id' => $thread->id]) }}" class="btn btn-danger">Delete</a>
这是论坛模式:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Forum extends Model
{
public function threads () {
return $this->hasMany(Thread::class);
}
}
您的路线如下所示:
Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [ ... ])
您必须使用论坛id
和线程id
作为控制器功能的参数:
public function deleteThread($forum_id, $thread_id)
{
$forum = Forum::find($forum_id);
$thread = Thread::find($thread_id);
$thread->delete();
return redirect()->back();
}
public function deleteThread(Forum $forum, Thread $thread)
{
$thread->delete();
return redirect()->back();
}
您甚至可以让Laravel为您将论坛
和线程
注入控制器-通过键入函数提示他们:
public function deleteThread($forum_id, $thread_id)
{
$forum = Forum::find($forum_id);
$thread = Thread::find($thread_id);
$thread->delete();
return redirect()->back();
}
public function deleteThread(Forum $forum, Thread $thread)
{
$thread->delete();
return redirect()->back();
}
当然,您必须分别将路由的forum\u id
参数调整为forum
,将thread\u id
调整为thread
。这还需要更改在其他视图中传递给URL的参数,例如(也称为“删除”按钮)
更新
顺便说一下,您不应该使用get请求进行删除。您应该使用DELETE
HTTP请求。因为您的路由如下所示:
Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [ ... ])
您必须使用论坛id
和线程id
作为控制器功能的参数:
public function deleteThread($forum_id, $thread_id)
{
$forum = Forum::find($forum_id);
$thread = Thread::find($thread_id);
$thread->delete();
return redirect()->back();
}
public function deleteThread(Forum $forum, Thread $thread)
{
$thread->delete();
return redirect()->back();
}
您甚至可以让Laravel为您将论坛
和线程
注入控制器-通过键入函数提示他们:
public function deleteThread($forum_id, $thread_id)
{
$forum = Forum::find($forum_id);
$thread = Thread::find($thread_id);
$thread->delete();
return redirect()->back();
}
public function deleteThread(Forum $forum, Thread $thread)
{
$thread->delete();
return redirect()->back();
}
当然,您必须分别将路由的forum\u id
参数调整为forum
,将thread\u id
调整为thread
。这还需要更改在其他视图中传递给URL的参数,例如(也称为“删除”按钮)
更新
顺便说一下,您不应该使用get请求进行删除。您应该使用DELETE
HTTP请求。您应该尝试以下方法:
public function deleteThread($forum_id,$thread_id)
{
Thread::destroy($thread_id);
return redirect()->back();
}
你应该试试这个:
public function deleteThread($forum_id,$thread_id)
{
Thread::destroy($thread_id);
return redirect()->back();
}