Ошибка «Action App \ Http \ Controllers \ CommentRepliesController @ createReply not defined» в Laravel

Я пытаюсь добавить возможность отвечать на комментарии к сообщению, но получаю это:

CommentRepliesController@createReply is not defined.

Добавление ответа на сообщение через PostCommentsController@store работает отлично. Но когда я пытаюсь добавить ответ на комментарий, вернувшись к сообщению или перейдя непосредственно к comment/reply в URL-адресе, я получаю указанную выше ошибку.

Вот мой маршрут:

Route::group(['middleware'=>'auth'], function(){
    Route::resource('comment/reply', 'CommentRepliesController@createReply');
});

Вот мой CommentRepliesController@createReply:

public function createReply(Request $request){
    $user = Auth::user();
    if ($user->photo){
        $data = [
        'comment_id' => $request->comment_id,
        'author' => $user->name,
        'email' => $user->email,
        'photo' => $user->photo->file,
        'body' => $request->body
    ];       
    } else{
        $data = [
        'comment_id' => $request->comment_id,
        'author' => $user->name,
        'email' => $user->email,
        'body' => $request->body
    ];
    }

    CommentReply::create($data);
    $request->session()->flash('reply_message', 'Your reply has been submitted 
                                 and is awaiting moderation.');
    return redirect()->back();

}

И вот мой post.blade.php:

@extends('layouts.blog-post')

@section('content')

    <!-- Blog Post -->

    <!-- Title -->
    <h1>{{$post->title}}</h1>

    <!-- Author -->
    <p class = "lead">
        by <a href = "#">{{$post->user->name}}</a>
    </p>

    <hr>

    <!-- Date/Time -->
    <p><span class = "glyphicon glyphicon-time"></span> 
                Posted on {{$post->created_at->diffForHumans()}}</p>

    <hr>

    <!-- Preview Image -->
    <img class = "img-responsive" src = "{{$post->photo->file}}" alt = "">

    <hr>

    <!-- Post Content -->
    <p class = "lead">
    <p>{{$post->body}}</p>
    <hr>

    @if (Session::has('comment_message'))
        {{session('comment_message')}}
    @endif

    <!-- Blog Comments -->
    @if (Auth::check())
    <!-- Comments Form -->
    <div class = "well">
        <h4>Leave a Comment:</h4>
            {!! Form::open(['method'=>'POST', 'action'=>'PostCommentsController@store'])!!}
                <input type = "hidden" name = "post_id" value = "{{$post->id}}"/>
                <!--<input type = "hidden" name = "_token" value = "{{ csrf_token() }}">-->
                {!! csrf_field() !!}

                <div class = "form-group">
                    {!! Form::label('body','Body: ') !!}
                    {!! Form::textarea('body', null, ['class'=>'form-control', 'rows'=>3]) !!}
                </div>
                <div class = "form-group">
                    {!! Form::submit('Post Comments', ['class'=>'btn btn-primary']) !!}
                </div>
            {!! Form::close() !!}
    </div>
    @endif
    <hr>

    <!-- Posted Comments -->
   @if (count($comments) > 0)
       @foreach($comments as $comment)
            <!-- Comment -->
            <div class = "media">
                <a class = "pull-left" href = "#">
                    <img height = "64" width = "64" class = "media-object" src = "{{$comment->photo}}" alt = "">
                </a>
                <div class = "media-body">
                    <h4 class = "media-heading">{{$comment->author}}
                        <small>{{$comment->created_at->diffForHumans()}}</small>
                    </h4>
                    <p>{{$comment->body}}</p>
                    <!-- Nested Comment -->
                    <div class = "media">
                        <a class = "pull-left" href = "#">
                            <img class = "media-object" src = "http://placehold.it/400x400" alt = "">
                        </a>
                        <div class = "media-body">
                            <h4 class = "media-heading">Nested Start Bootstrap
                                <small>August 25, 2014 at 9:30 PM</small>
                            </h4>
                            Cras sit amet nibh libero, in gravida nulla. 
                            Nulla vel metus scelerisque ante sollicitudin 
                            commodo. Cras purus odio, vestibulum in vulputate 
                            at, tempus viverra turpis. Fusce condimentum nunc 
                            ac nisi vulputate fringilla. Donec lacinia congue 
                            felis in faucibus.
                        </div>
                    </div>
                    <!-- End Nested Comment -->   
                    @if (Session::has('reply_message'))
                      <p class = "bg-danger">{{session('reply_message')}}</p>
                    @endif                    
                    <!--Comment Reply Form-->
                    {!! Form::open(['method'=>'POST', 'action'=>'CommentRepliesController@createReply'])!!}
                        <div class = "form-group">
                            <input type = "hidden" name = "comment_id" value = "{{comment_id}}"/>    
                            {!! Form::label('body','Body: ') !!}
                            {!! Form::textarea('body', null, ['class'=>'form-control', 'rows'=>1]) !!}
                        </div>
                        <div class = "form-group">
                            {!! Form::submit('Reply', ['class'=>'btn btn-primary']) !!}
                        </div>
                    {!! Form::close() !!}     
                    <!--End of Comment Reply Form-->
                 </div>
            </div>
        @endforeach
    @endif


@stop

Заранее спасибо.

Попробуйте php artisan route:list, чтобы получить список всех определенных вами маршрутов.

ourmandave 10.11.2018 03:09

У вас здесь ошибка, друг мой Route :: resource ('comment / reply', 'CommentRepliesController @ createReply'); измените его на Route :: post ('комментарий / ответ', 'CommentRepliesController @ postReply');

TheBAST 10.11.2018 03:33
Стоит ли изучать 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 и хотите разрабатывать...
4
2
1 870
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Laravel resource routing assigns the typical "CRUD" routes to a controller with a single line of code.

Route::resource автоматически использует операции «CRUD» в вашем контроллере ресурсов. См. Документы здесь

Если вы хотите использовать определенную функцию внутри вашего контроллера, не используйте Route::resource. Используйте любой метод, который хотите. Например, если ваш метод - POST, используйте Route::post следующим образом:

Route::group(['middleware'=>'auth'], function(){
    Route::post('comment/reply', 'CommentRepliesController@createReply');
});

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

SQL-запрос для поиска строки с определенным количеством ассоциаций
SQL - есть ли способ сортировать несколько столбцов времени в один при сохранении метаданных без UNION?
Запрос T-SQL для вставки отсутствующих значений в таблицу на основе критериев комбинации двух столбцов
Ошибка преобразования при преобразовании "недопустимого" значения "Residential" в тип данных int
Как можно использовать сводную таблицу в SQL Server с временной таблицей
Есть ли какая-нибудь разница между использованием только `foreign_key =` vs `foreign_key_id =` в ORM Django?
Как избежать написания длинных предложений where в SQL, когда вы объединяете две таблицы с идентичной схемой и проверяете равенство во всех полях, кроме одного?
Как вернуть нулевое значение для нулевого значения в запросе подсчета в MS-Access?
Как я могу проверить, существует ли значение в последних N строках другой таблицы?
Отображение процентного соотношения сгруппированной суммы к общей сумме