Function () не выходит в laravel 5.6

Я использую ресурсный маршрут. А теперь я хотел бы добавить еще один маршрут:

Route::resource('discussion', 'DiscussionsController');
Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);`

А вот и функция ответа,

public function reply($id)
{
    $discussion = Discussion::find($id);

    $reply = Reply::create([
        'user_id'=>Auth::id(),
        'discussion_id' => $id,
        'content'=> \request()->reply
    ]);

    return redirect()->back();
}

Это лезвие, которое перенаправляет на функцию магазина.

<div class = "card">

    <div class = "card-body">
        Leave a reply

        <form method = "post" action = "{{route('discussion.reply', ['id'=> $discussion->id])}}">
            {{csrf_field()}}
            <div class = "form-group">
                <textarea name = "reply" class = "form-control"></textarea>
            </div>

            <div class = "form-group">
                <button type = "submit" class = "btn btn-primary ">Reply</button>
            </div>
        </form>
    </div>

В чем проблема?

Какую именно ошибку вы получаете? Можете ли вы включить трассировку стека?

Marcin Nabiałek 29.08.2018 08:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
526
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Попробуйте изменить порядок маршрутов

Вместо

Route::resource('discussion', 'DiscussionsController');
Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);

Используйте это

Route::post('/discussion/reply/{id}',[
    'use' => 'DiscussionsController@reply',
    'as' => 'discussion.reply'
]);
Route::resource('discussion', 'DiscussionsController');

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

Rwd 29.08.2018 08:27

все еще не работает. Замыкание в действии маршрута

Shunhra Sarker 29.08.2018 08:33

Используете ли вы промежуточное ПО в маршруте? Если да, убедитесь, что вы используете ключ «использует», а не «использовать». Пример:

Route::get('foo/bar/{id}',['middleware'=>'auth','uses'=>'FooController@show']);

Или вы можете просто передать имя контроллера и функцию в качестве второго параметра без массива на основе значения ключа.

Ответ принят как подходящий

Я могу ошибаться, но с первого взгляда я бы сказал, что это потому, что у вас есть use вместо uses для вашего Route.

Попробуйте изменить

'use' => 'DiscussionsController@reply',

к

'uses' => 'DiscussionsController@reply',

Во-вторых, вам не нужен \ с \request()->reply.

Поменяйте его на request()->reply или даже на request('reply')

Почему это было отклонено? Если вы собираетесь проголосовать против ответа, вы должны хотя бы объяснить, почему вы это сделали.

Rwd 29.08.2018 12:19

Другие вопросы по теме