I have made a custom middleware named AdminAuth for my admin panel. It's working fine. But I dont get any flash message for success when I create a new entry in database. Here's my code in route file:
Route::group(['middleware' => ['web']], function () {
Route::group(['middleware' => ['admins']], function () {
Route::get('/admin', function(){
return view('admin.welcome');
});
Route::get('/category', ['as' => 'category.index', 'uses' => 'Admin\CategoryController@index']);
Route::post('/category/create', ['uses' => 'Admin\CategoryController@postCreate']);
Route::get('/category/edit/{id}', ['as' => 'category.edit', 'uses' => 'Admin\CategoryController@getEdit']);
});
});
and code in controller method:
public function postCreate(Request $request)
{
$rules = [
'name' => 'required|min:2,max:40|unique:categories'
];
if ($request->input('parent_id')) {
$rules = array_add($rules, 'category_pic', 'required');
}
$this->validate($request, $rules);
if ($request->hasFile('category_pic')) {
$file = $request->file('category_pic');
$file_name = $file->getClientOriginalName();
$file_uploaded = $file->move('upload/category', $file_name);
if (!$file_uploaded) {
return redirect()
->route('category.index')
->with('warning', 'Category picture can not be uploaded.');
}
}
$category = new Category();
$category->name = $request->input('name');
$category->slug = str_slug($request->input('name'));
$category->parent_id = $request->input('parent_id');
$category->description = $request->input('description');
$category->admin_id= auth()->guard('admins')->user()->id;
if ($request->hasFile('category_pic')) {
$category->category_pic = $request->file('category_pic')
->getClientOriginalName();
}
if ($category->save()) {
return redirect()
->route('category.index')
->with('success', 'Category created successfully.');
} else {
return redirect()
->route('category.index')
->with('success', 'Category Not created.');
}
}
and code in view template:
@if(Session::has('success'))
<div class="flash-message flash-message-success">
{{ Session::get('success') }}
</div>
@endif
I cannot find my mistake. How can I solve this?
I have registered my middleware in kernal like this:
protected $routeMiddleware = [
'auth' => \theGrocer\Http\Middleware\Authenticate::class,
'admins' => \theGrocer\Http\Middleware\AdminAuth::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \theGrocer\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];