如何在laravel 5中使用哨兵?

Ogi*_*ado 11 php laravel cartalyst-sentry

我已尝试在laravel 5中安装哨兵,但它不起作用.我想知道是否有人这样做以及如何做到这一点.

更新:我使用了Laravel 4的说明.

scr*_*fix 17

我有这个工作.

  1. L5中的Sentry现在没有官方支持.他们在自己的网站上说明了这一点.然而,他们正在努力.

  2. 将以下内容添加到require部分中的composer.json文件中.

    "cartalyst/sentry": "dev-feature/laravel-5",
    "illuminate/html": "~5.0"
    
    Run Code Online (Sandbox Code Playgroud)

将以下内容添加到自动加载部分.

"app/Http/Controllers",
Run Code Online (Sandbox Code Playgroud)

它应该看起来像:

"require": {
    "laravel/framework": "5.0.*",
    "cartalyst/sentry": "dev-feature/laravel-5",
    "illuminate/html": "~5.0"
},
"require-dev": {
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1"
},
"autoload": {
    "classmap": [
        "database",
        "app/Classes",
        "app/Http/Controllers",
        "app/Models"
Run Code Online (Sandbox Code Playgroud)
  1. (假设linux没有别名)运行php composer.phar dump-autoload然后php composer.phar更新

  2. 按照以下页面上的说明将文件从4.2转换为5.0:http://laravel.com/docs/master/upgrade#upgrade-5.0

  3. 如果您使用HTML Facade for FORMS,请将{{{}}}或{{}}更改为{!! !!}因为L5逃脱了{{{}}}和{{}}的所有输出.如果你想要原始输出你必须使用{!! !}.

  4. 按照#4中的说明将重定向检查移动到引导方法时,将以下内容添加到RouteServiceProvider.php的顶部

    使用Cartalyst\Sentry\Facades\Laravel\Sentry;

引导方法应该类似于:

public function boot(Router $router)
    {
        parent::boot($router);
        // Check if someone is already logged in
        Route::filter('members_auth',function(){
        //If already logged in go to dashboard or else login
            if(!Sentry::check()){
                return Redirect::to('/login');
            }
        });

        //
    }
Run Code Online (Sandbox Code Playgroud)

更新02-26-15

  1. 不要运行命令php artisan optimize,因为它会打破哨兵.在我运行这个之后我无法弄清楚出了什么问题,但是我认为它可能与compile.php文件有关,所以我运行了php artisan optimize --force并修复了问题所在.

希望能帮助到你.

Wayne Leiser,IT总监

B2B IT解决方案

**更新29-03-2018**Sentry现在支持Laravel 5.x.