控制器方法未在laravel中定义

Geo*_*ood 0 php forms controller file laravel

我是Laravel的新手,并试图学习形式.目前我正在尝试上传文件,我的创建页面如下所示:

<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>   


<body>
{!! Form::open(['action' => 'MovieController@create', 'enctype' => 'multipart/form-data']) !!}
    <div class="form-group">
    {{Form::label('name', 'Name')}}
    <br>
    {{Form::text('name')}}
    </div>
    <div class="form-group">
    {{Form::label('description', 'Description')}}
    <br>
    {{Form::textarea('description')}}
    </div>
    <div class="form-group">
    {{Form::label('release_date', 'Release Date')}}
    <br>
    {Form::date('release_date')}}
    </div>
    <div class="form-group">
    {{Form::label('country', 'Country')}}
    <br>
    {{Form::text('country')}}
    </div>
    <div class="form-group">
    {{Form::label('poster_name', 'Poster Image')}}
    {{Form::file('poster_name')}}
    </div>
    <div class="form-group">
    {{Form::label('file_name', 'Movie File')}}
    {{Form::file('file_name')}}
    </div>
    {{Form::submit('Submit',['class' => 'btn btn-primary'])}}
 {!! Form::close() !!}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我正在尝试制作'MovieController @ create'的动作.现在让我们看一下MovieController文件:namespace

App\Http\Controllers;

use Illuminate\Http\Request;
use App\Movie;

class MovieController extends Controller
{

    public function create(Request $request){
        $this->validate($request,[
            'poster_name' => 'required|image'
        ]);


        //Handle poster upload
        $imageName = $request->file('poster_name')->getClientOriginalName();
        $request->file('poster_name')->storeAs('public/images',$imageName);

        $videoName = $request->file('file_name')->getClientOriginalName();
        $request->file('file_name')->storeAs('public/videos',$videoName);

        $movie = new Movie;

        $movie->name = $request->name;
        $movie->description = $request->description;
        $movie->release_date = $request->release_date;
        $movie->country = $request->country;
        $movie->poster_name = $imageName;
        $movie->file_name = $videoName;

        $movie->save();

        $movies = Movie::all();

        return view('home',['movies' => $movies]); 
    }
}
Run Code Online (Sandbox Code Playgroud)

一开始一切正常,但后来我在创建文件中做了一些更改(只有css和视觉更改),现在当我尝试转到该页面时,它会出现以下错误:

ErrorException操作App\Http\Controllers\MovieController @创建未定义.(查看:C:\ xampp\htdocs\MagicMovie\resources\views\movies\create.blade.php)

有什么建议?

Rom*_*usa 5

尝试做这样的事情,

在你的表格上

 {!! Form::open([  'action' => route('create_movie'), 
        'enctype' => 'multipart/form-data', 'method' => 'POST']) !!}
Run Code Online (Sandbox Code Playgroud)

要么

 {!! Form::open([  'action' => url('movie/create'), 
        'enctype' => 'multipart/form-data' , 'method' => 'POST' ]) !!}
Run Code Online (Sandbox Code Playgroud)

在你的路线(web.php)

  Route::post('movie/create', ['uses' => 'MovieController@create', 'as' => 'create_movie']);
Run Code Online (Sandbox Code Playgroud)

您还可以在此处查看一些基本的Laravel路由.