Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel删除论坛的一个线程_Php_Laravel_Eloquent_Laravel 5.5 - Fatal编程技术网

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();
    }