Laravel удаляет ветку форума - PullRequest
0 голосов
/ 23 ноября 2018

Я уже искал и перепробовал множество решений подобного случая, но в моем случае ничего не работает.Я все еще довольно новичок в Laravel и не очень разбираюсь в красноречивости.Я пытаюсь удалить ветку форума, пожалуйста, помогите.

Это маршрут для удаления тем:

Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [
'uses' => 'ForumsController@deleteThread',
'as' => 'thread.delete']);

Это функция (я не знаю, как получитьидентификатор темы):

    public function deleteThread($id)
    {
        $forum = Forum::find($id);
        $thread = $forum->threads;

        dd($thread);
        $thread->delete();

        return redirect()->back();
    }

Это кнопка удаления:

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

Это модель темы:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Thread extends Model
{
    public function forum () {
        return $this->belongsTo(Forum::class);
    }
}

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы должны попробовать это:

public function deleteThread($forum_id,$thread_id)
    {
        Thread::destroy($thread_id);

        return redirect()->back();
    }
0 голосов
/ 23 ноября 2018

Поскольку ваш маршрут выглядит следующим образом:

Route::get('/forum/{forum_id}/thread/{thread_id}/delete', [ ... ])

вам придется использовать forum_id и thread_id в качестве параметров функции вашего контроллера:

public function deleteThread($forum_id, $thread_id)
{
    $forum = Forum::find($forum_id);
    $thread = Thread::find($thread_id);

    $thread->delete();

    return redirect()->back();
}

Вы можетедаже пусть Laravel впрыснет Forum и Thread в контроллер для вас - указав их на функции:

public function deleteThread(Forum $forum, Thread $thread)
{
    $thread->delete();

    return redirect()->back();
}

Конечно, вам придется настроить параметр forum_idмаршрут к forum и thread_id к thread соответственно.Это также требует изменения параметров, которые вы передаете в URL, например, в других представлениях (или кнопка удаления ).

ОБНОВЛЕНИЕ Просто так, как вы не должныне использовать запрос get для удаления.Вы должны использовать DELETE HTTP-запрос.

...