【发布时间】:2017-06-27 10:01:17
【问题描述】:
我想在我的项目中进行会话处理。我有一个登录页面 以及注册页面。 我已将所有值存储在会话数据中,并在注销时使用 Laravel 的刷新功能销毁了该值。
如果用户的会话不存在,则应将用户重定向到登录页面。 为了处理这种情况,我在 Controller 中创建了 helpers.php 文件,用于检查会话数据是否为空。
如果会话数据为空,则用户应重定向到登录页面。该案例包含在控制器部分中。 但我收到以下错误。我的代码的实现如下:
Test_laravel\app\Http\Controllers\CrudController.php
<?php
namespace App\Http\Controllers;
//request class is use for take form input
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
//for database
use DB;
//to use models
use App\Crud;
class CrudController extends Controller {
public function index() {
return view('register');
}
}
**Test_laravel\app\helpers.php**
<?php
// My common functions
$is_login=session()->get('data');
// var_dump($is_login);die;
if(empty($is_login))
{
return view('login');
}
?>
错误如下:
**Fatal error: Call to a member function make() on a non-object in D:\php\wamp\www\Test_laravel\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php on line 105**
我需要用户在尝试访问注册页面时自动重定向到登录页面(如果他们尚未登录)的情况。
【问题讨论】:
-
也许你应该开始在 Laravel 中寻找 auth 以了解登录/注销的工作原理。
-
您的
helpers.php中的代码是在某种函数中还是只是像那样被转储到那里? -
是的,这是我的 helpers.php 文件中的实际代码,如果我在 CrudControllers 中编写相同的代码,那么它工作正常,但如果在每个控制器中编写相同的排序或代码以检查用户是否登录或不是那么它增加了代码的复杂性。所以我想在我的助手中编写那个会话代码我已经在我的 composer.json 中定义了助手路径,所以它会默认在每个控制器上调用,但它显示上面的错误。
标签: php laravel session laravel-5