簡體   English   中英

方法App \\ Http \\ Controllers \\ CommentsController :: store不存在。 -Laravel 5.8

[英]Method App\Http\Controllers\CommentsController::store does not exist. - Laravel 5.8

每當我在新聞文章或版塊中發表評論時,我都會不斷收到此錯誤。 我無法解決此錯誤。 我嘗試了幾種方法,但無法解決。 任何人都有一個想法如何擺脫這一點? 請告訴我。 謝謝

CommentsController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Comment;
use App\News;
use App\Graph;
use Validator;
use Session;




class CommentsController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request, $news_id)
    {
        //
        $this->validate($request, array(
            'name'=> 'required | max:255',
            'email'=> 'required| email | max:255',
            'comment'=> 'required | min:5'
        ));

        $news = News::find($news_id);

        $comment = new Comment();

        $comment->name = $request->name;
        $comment->email = $request->email;
        $comment->comment = $request->comment;
        $comment->approved = true;
        $comment->news()->associate($news);

        $comment->save();

        Session::flash('success', "Comment Added! ");

        return redirect()->route('article/',[$news->id]);



    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/



Route::get('/adminlogin', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('/adminlogin', 'Auth\LoginController@login');


// Registration Routes...
Route::get('register/', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register/', 'Auth\RegisterController@register');






//CRUD ROUTE COLLECTIVE
Route::resource('users','UserController');

//CRUD COLLECTIVE NEWS
Route::resource('news', 'NewsController');

//CRUD COLLECTIVE ROADMAP
Route::resource('roadmap', 'RoadmapController');

//dashboard
Route::get('/home', 'HomeController@index')->name('home');


Route::get('/', 'GraphController@index');

//for user logout
Route::get('/logout', 'HomeController@logout');




//show individual news
Route::group(['middleware'=>['web']], function(){
    Route::get('/article/{id}', 'NewsController@showNews')->name('article');

});





//comments
Route::post('comments/{news_id}', ['uses' => 'CommentsController@store ', 'as' => 'comments.store']);
// Route::post('comments/{news_id}','CommentsController@store');





Comment.php模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Comment extends Model
{

    protected $fillable = [
        'name', 'email', 'comment',
    ];
    //
    public function news(){
        return $this->belongsTo('App\News');
    }
}

News.php模型


<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class news extends Model
{
    //
    protected $fillable = [
        'title', 'subtitle', 'body', 'image',
    ];


    public function comments(){
        return $this->hasMany('App\Comment');
    }
}

shownews.blade.php-(我只在表單中發布了代碼,因為此文件中的代碼太長了)

 <div id="comments" class="comments-area">
                    <div id="respond" class="comment-respond">
                      <h3 id="reply-title" class="comment-reply-title">
                        <div class="leave-a-comment-title">Leave a <span>comment </span></div>

                      </h3>

                    {!! Form::open(['route'=>['comments.store', $news->id], 'method'=>'POST']) !!}

                        <div class="row">
                          <div class="col-md-4 col-12 form-group">
                           {!! Form::label('name', 'Name:') !!}
                           {!! Form::text('name', null, ['class'=>'form-control'])!!}
                          </div>
                          <div class="col-md-4 col-12 form-group">
                            {{Form::label('email', 'Email:') }}
                            {!!Form::text('email', null, ['class'=>'form-control'])!!}
                          </div>
                        </div>
                        <div class="row">
                          <div class="col-12 form-group">
                            {!! Form::label('comment', 'Comment:') !!}
                            {!! Form::textarea('comment', null, ['class'=>'form-control'])!!}


                          </div>
                        </div>
                        <div class="form-submit">
                          {!!Form::submit ('Add Comment', ['class'=>'btn btn-warning'])!!}
                        </div>

                      {!!Form::close()!!}
                    </div>
                  </div>

              </div>

路線清單

+--------+-----------+------------------------+-----------------+-------------------------------------------------------------------+--------------+
|        | GET|HEAD  | /                      |                 | App\Http\Controllers\GraphController@index                        | web          |
|        | POST      | adminlogin             |                 | App\Http\Controllers\Auth\LoginController@login                   | web,guest    |
|        | GET|HEAD  | adminlogin             | login           | App\Http\Controllers\Auth\LoginController@showLoginForm           | web,guest    |
|        | GET|HEAD  | api/user               |                 | Closure                                                           | api,auth:api |
|        | GET|HEAD  | article/{id}           | article         | App\Http\Controllers\NewsController@showNews                      | web          |
|        | POST      | comments/{news_id}     | comments.store  | App\Http\Controllers\CommentsController@store                     | web          |
|        | GET|HEAD  | home                   | home            | App\Http\Controllers\HomeController@index                         | web          |
|        | GET|HEAD  | logout                 |                 | App\Http\Controllers\HomeController@logout                        | web          |
|        | GET|HEAD  | news                   | news.index      | App\Http\Controllers\NewsController@index                         | web          |
|        | POST      | news                   | news.store      | App\Http\Controllers\NewsController@store                         | web          |
|        | GET|HEAD  | news/create            | news.create     | App\Http\Controllers\NewsController@create                        | web          |
|        | DELETE    | news/{news}            | news.destroy    | App\Http\Controllers\NewsController@destroy                       | web          |
|        | GET|HEAD  | news/{news}            | news.show       | App\Http\Controllers\NewsController@show                          | web          |
|        | PUT|PATCH | news/{news}            | news.update     | App\Http\Controllers\NewsController@update                        | web          |
|        | GET|HEAD  | news/{news}/edit       | news.edit       | App\Http\Controllers\NewsController@edit                          | web          |
|        | GET|HEAD  | register               | register        | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest    |
|        | POST      | register               |                 | App\Http\Controllers\Auth\RegisterController@register             | web,guest    |
|        | POST      | roadmap                | roadmap.store   | App\Http\Controllers\RoadmapController@store                      | web          |
|        | GET|HEAD  | roadmap                | roadmap.index   | App\Http\Controllers\RoadmapController@index                      | web          |
|        | GET|HEAD  | roadmap/create         | roadmap.create  | App\Http\Controllers\RoadmapController@create                     | web          |
|        | GET|HEAD  | roadmap/{roadmap}      | roadmap.show    | App\Http\Controllers\RoadmapController@show                       | web          |
|        | PUT|PATCH | roadmap/{roadmap}      | roadmap.update  | App\Http\Controllers\RoadmapController@update                     | web          |
|        | DELETE    | roadmap/{roadmap}      | roadmap.destroy | App\Http\Controllers\RoadmapController@destroy                    | web          |
|        | GET|HEAD  | roadmap/{roadmap}/edit | roadmap.edit    | App\Http\Controllers\RoadmapController@edit                       | web          |
|        | GET|HEAD  | test                   |                 | App\Http\Controllers\GraphController@test                         | web          |
|        | POST      | users                  | users.store     | App\Http\Controllers\UserController@store                         | web          |
|        | GET|HEAD  | users                  | users.index     | App\Http\Controllers\UserController@index                         | web          |
|        | GET|HEAD  | users/create           | users.create    | App\Http\Controllers\UserController@create                        | web          |
|        | DELETE    | users/{user}           | users.destroy   | App\Http\Controllers\UserController@destroy                       | web          |
|        | PUT|PATCH | users/{user}           | users.update    | App\Http\Controllers\UserController@update                        | web          |
|        | GET|HEAD  | users/{user}           | users.show      | App\Http\Controllers\UserController@show                          | web          |
|        | GET|HEAD  | users/{user}/edit      | users.edit      | App\Http\Controllers\UserController@edit                          | web          |
+--------+-----------+------------------------+-----------------+-------------------------------------------------------------------+--------------+

您的web.php路由文件中有一個錯字。 第61行。從'CommentsController@store '刪除多余的空間,您會沒事的。

Route::post('comments/{news_id}', ['uses' => 'CommentsController@store ', 'as' => 'comments.store']);

Route::post('comments/{news_id}', ['uses' => 'CommentsController@store', 'as' => 'comments.store']);

第二個問題是在操作結束時進行重定向。 沒有稱為article/路線。 刪除斜杠。

return redirect()->route('article/',[$news->id]);

return redirect()->route('article', [$news->id]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM