我的代码如下!
控制器:
use Session;
public function update($id, Request $request)
{
$book = Section::findOrFail($id);
$input = $request->all();
$book ->fill($input)->save();
Session::flash('message', 'Book successfully updated!');
return redirect()->back();
}
以下是我的模板文件代码:
@if(Session::has('message'))
<div class="alert alert-primary fade in">
<button data-dismiss="alert" class="close"><span>×</span></button>
{{ Session::get('message') }}
</div>
@endif
我是laravel
的初学者。在控制器中我已经使用Session
然后使用Session::flash('key','value')
,并且在模板文件中我使用Session::get()
方法获取它。
答案 0 :(得分:0)
我能够通过将路线放在&#34; web&#34;路由文件中的中间件:
Route::group(['middleware' =>['web'], 'prefix' => 'admin'], function () {
Route::resource('book', 'BookController');
});
添加中间件网络后,工作正常!
答案 1 :(得分:0)
有关更多信息:如果您使用的是Laravel 5.2,则很可能是由于默认情况下未使用StartSession
中间件。
如果您查看app/Http/Kernal.php
,可以看到预定义了两个中间件组:web
和api
。 web
中间件组在中间件中添加了cookie,会话和CSRF令牌。
如果您的路由不在web
中间件组内,则默认情况下您不会获得此功能。如果您将路由放在web
中间件组中,那么您的会话应该开始工作。
答案 2 :(得分:0)
原因可能是你有 2个网络中间件。第二个就是杀死闪存数据。我得到了全新安装。您可以尝试通过$ php artisan route:list
命令进行检查。
| | GET|HEAD | / | | App\Http\Controllers\PagesController@one | web,web |
所以只需从web
routes.php
即可
Route::group([], function () {
....
答案 3 :(得分:-1)
你必须为Session
导入这个类use Illuminate\Support\Facades\Session;
尝试一下,它会起作用: - )
答案 4 :(得分:-1)
在控制器中尝试删除会话闪存并用
替换重定向行return redirect()->back()->with('message', 'Book successfully updated!');