【问题标题】:Session doesn't work in Laravel 5.2会话在 Laravel 5.2 中不起作用
【发布时间】:2016-04-16 20:23:15
【问题描述】:

我在 Laravel 5.2 中的会话存在很大问题。我的会话没有设置在某些路线上。

像这样

Route::post('add','SiteController@add');

这是我的route.php

Route::get('admin','AdminController@index');
Route::resource('admin/product','ProcuctController');

Route::resource('admin/news','NewsController');
Route::resource('admin/category','CategoryController');
Route::get('session','SiteController@session');
Route::post('add','SiteController@add');
Route::get('/{title}','SiteController@show');
Route::group(['middleware' => ['web']], function () {
      Route::get('session','SiteController@session');
      Route::post('add','SiteController@add');
});

我的文件购物 cms 篮不起作用。这是我的SiteController 函数

public function add(Request $request)
{
    if(session::has('cart'))
    {
          $cart=session::get('cart');

          if(array_key_exists($request->product_id,$cart))
          {
               $cart[$request->product_id]++;
          }
          else
          {
               $cart[$request->product_id]=1;
          }

          session::put('cart',$cart);
          //var_dump(session::get('cart'));
          print 'ok';
    }
    else
    {
          $cart=array();
          $cart[$request->product_id]=1;
          session::put('cart',$cart);
          var_dump(session::get('cart'));
    }
} 

每次我点击购买按钮时,条件都不会返回 true

【问题讨论】:

  • 你使用的是什么版本的 Laravel 5.2? 5.2.27 版现在默认支持web 中间件,再次声明它可能会让你有些头疼

标签: session laravel-5.2


【解决方案1】:

在您的router.php 中,您注册了两次addsession 路由。一个在web 中间件内部,另一个在外部。去掉外面的那个。所以你的 router.php 看起来像

Route::get('admin','AdminController@index');
Route::resource('admin/product','ProcuctController');
Route::resource('admin/news','NewsController');
Route::resource('admin/category','CategoryController');
Route::get('/{title}','SiteController@show');
Route::group(['middleware' => ['web']], function () {
      Route::get('session','SiteController@session');
      Route::post('add','SiteController@add');
});

然后在您的SiteController 中将此行添加到顶部

use session;

【讨论】:

  • 我更改了 route.php 并且我遇到了一个新问题 ` if(session::has('cart')) { ` never return true
猜你喜欢
  • 2016-08-25
  • 2017-11-25
  • 2016-06-03
  • 2016-11-27
  • 1970-01-01
  • 1970-01-01
  • 2016-11-15
  • 2016-05-23
相关资源
最近更新 更多