Laravel创建请求无法正常工作。

6

我可以看出您对Laravel很陌生。您遇到了一个问题,它似乎无法识别我所创建的新类...

首先,我运行了...

php artisan make:request CreateSongRequest

这将会生成一个CreateSongRequest.php文件,存放在app/Http/Requests/目录下。

文件内容...

<?php namespace App\Http\Requests;

use App\Http\Requests\Request;

class CreateSongRequest extends Request {

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [

            //
        ];
    }

}

在我的控制器中,我将表单提交到以下方法...
public function store(CreateSongRequest $request, Song $song) {


    $song->create($request->all());

    return redirect()->route('songs_path');
}

当我提交表单时,出现了以下错误...

在RouteDependencyResolverTrait.php文件的第53行发生反射异常:类App\Http\Controllers\CreateSongRequest不存在


我的情况是,自定义请求类(在您的情况下为CreateSongRequest)存在语法错误,导致无法加载。因此,当容器方法正在查找它时,它无法被加载。向下滚动第一个异常会显示第二个带有语法错误的异常。希望这能帮助到某些人。 - astroanu
2个回答

9
您需要在控制器顶部添加以下内容:
use App\Http\Requests\CreateSongRequest;

0

试一下,它有效。

public function store(Request $request, Song $song)
{

   $this->validate($request, [
      'title' => 'required',
      'slug' => 'required|unique:songs,slug',
   ]);

   $song->create($request->all());
   return redirect()->route('songs_path');

}

来源:http://laravel.com/docs/5.1/validation


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接