我有一份表单请求,用于验证' name'属性根据需要。当我提交表单时,它会重定向回创建页面而不保存,但我没有收到任何错误消息。
当我对$ errors执行var_dump时,它是空的。我很感激帮助弄清楚这里发生了什么......
查看
@if($errors->any())
<ul class="alert alert-danger">
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
@endif
{{var_dump($errors)}}
控制器:
<?php
namespace CRM\Http\Controllers\Settings;
use CRM\Http\Requests;
use CRM\Http\Controllers\Controller;
use CRM\Category;
use CRM\Http\Requests\CategoryFormRequest;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Session;
class CategoriesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return void
*/
public function index()
{
$categories = Category::paginate(15);
return view('settings.categories.index', compact('categories'));
}
/**
* Show the form for creating a new resource.
*
* @return void
*/
public function create()
{
return view('settings.categories.create');
}
/**
* Store a newly created resource in storage.
*
* @param CategoryFormRequest $request
*/
public function store(CategoryFormRequest $request)
{
Category::create($request->all());
Session::flash('flash_message', 'Category added!');
return redirect('settings/categories');
}
/**
* Display the specified resource.
*
* @param int $id
*
* @return void
*/
public function show($id)
{
$category = Category::findOrFail($id);
return view('settings.categories.show', compact('category'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
*
* @return void
*/
public function edit($id)
{
$category = Category::findOrFail($id);
return view('settings.categories.edit', compact('category'));
}
/**
* Update the specified resource in storage.
*
* @param int $id
*
* @return void
*/
public function update($id, Request $request)
{
$this->validate($request, ['name' => 'required', ]);
$category = Category::findOrFail($id);
$category->update($request->all());
Session::flash('flash_message', 'Category updated!');
return redirect('settings/categories');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
*
* @return void
*/
public function destroy($id)
{
Category::destroy($id);
Session::flash('flash_message', 'Category deleted!');
return redirect('settings/categories');
}
}
表格申请:
<?php
namespace CRM\Http\Requests;
use CRM\Http\Requests\Request;
class CategoryFormRequest 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 [
'name' => 'required'
];
}
public function messages()
{
return [
'name.required' => 'Please enter a name for this category'
];
}
}
路线:
Route::group(['middleware' => ['web']], function () {
Route::resource('settings/categories', 'Settings\\CategoriesController');
Route::resource('settings/statuses', 'Settings\\StatusesController');
Route::get('/', function () {
return view('welcome');
});
});
如果我把它放在商店的第一行() DD($请求); 我明白了:
Request {#40 ▼
#json: null
#convertedFiles: null
#userResolver: Closure {#211 ▶}
#routeResolver: Closure {#210 ▶}
+attributes: ParameterBag {#42 ▶}
+request: ParameterBag {#41 ▶}
+query: ParameterBag {#48 ▶}
+server: ServerBag {#45 ▶}
+files: FileBag {#44 ▶}
+cookies: ParameterBag {#43 ▶}
+headers: HeaderBag {#46 ▶}
#content: null
#languages: null
#charsets: null
#encodings: null
#acceptableContentTypes: null
#pathInfo: "/settings/categories"
#requestUri: "/settings/categories"
#baseUrl: ""
#basePath: null
#method: "POST"
#format: null
#session: Store {#240 ▶}
#locale: null
#defaultLocale: "en"
}
答案 0 :(得分:0)
在laravel 5.2中你需要使用&#34; web&#34;你的问题的中间件,像那样
Route::group(['middleware' => ['web']], function () {
// here you should put your routes
});
答案 1 :(得分:0)
因此,在Web中间件中使用我的路由是导致此问题的原因。显然,在最新版本的Laravel Web中间件被假设。
我从这个问题的接受答案中得到了答案:Laravel 5.2 Not returning error array