laravel(4.2) +Zizaco

操作步骤:https://github.com/Zizaco/entrust/tree/1.0

这篇博客说的蛮详细的:http://blog.boolw.com/?p=241

简化后的步骤

1.在根项目composer.json下require键下添加以下代码(注意:在”laravel/framework”: “4.2.*”,后追加逗号):

"zizaco/entrust": "1.2.*@dev"

2.执行下面命令

$ composer update

3.在你的config/app.php添加‘Zizaco\Entrust\EntrustServiceProvider‘的结束$providers

‘providers‘ => array(

    ‘Illuminate\Foundation\Providers\ArtisanServiceProvider‘,
    ‘Illuminate\Auth\AuthServiceProvider‘,
    ...
    ‘Zizaco\Entrust\EntrustServiceProvider‘,

),

4.在config/app.php后面添加‘Entrust‘ => ‘Zizaco\Entrust\EntrustFacade‘$aliases

‘aliases‘ => array(

    ‘App‘        => ‘Illuminate\Support\Facades\App‘,
    ‘Artisan‘    => ‘Illuminate\Support\Facades\Artisan‘,
    ...
    ‘Entrust‘    => ‘Zizaco\Entrust\EntrustFacade‘,

),

5.设置的属性值config/auth.php。这些值将使用entrust来引用正确的用户表和模型.

6.现在生成entrust迁移,它将生成<timestamp>_entrust_setup_tables.php迁移。目录在你当前执行的项目下的  manage\database\migrations 里

$ php artisan entrust:migration

7.运行下面的语句,生产相关联的四张表

$ php artisan migrate
注意:
SQLSTATE[HY000]: General error: 1005 Can‘t create table ‘laravelbootstrapstarter.#sql-42c_f8‘ (errno: 150) (SQL: alter table `assigned_roles` add constraint assigned_roles_user_id_foreign foreign key (`
  user_id`) references `users` (`id`)) (Bindings: array (
  ))
也许在这步创建assigned_roles表,会报外键管理错误:你可以检查下,用户表的主键是否设置 UNSIGNED属性,或是 id列在你的用户表没有user_id和assigned_roles字段。并且都是INT(10)。

生产的四张数据表解释:

  roles - 用户组信息表;

  assigned_roles - 用户和用户组之间的对应关系;

  permissions - 权限信息表;

  permission_role - 权限和用户组之间的对应关系.

8.创建模型

a.创建一个角色模型的例子app/models/Role.php:

<?php

use Zizaco\Entrust\EntrustRole;

class Role extends EntrustRole
{

}

b.创建一个权限模型的例子app/models/Permission.php:

<?php

use Zizaco\Entrust\EntrustPermission;

class Permission extends EntrustPermission
{

}

c.接下来,使用HasRole在你现有的特征User模型。例如:

<?php

use Zizaco\Entrust\HasRole;

class User extends Eloquent /* or ConfideUser ‘wink‘ */{
    use HasRole; // Add this trait to your user model

...

这将会奏效,使关系Role和下面的方法roles, hasRole( $name ), can( $permission ),ability($roles, $permissions, $options)在你的User模型。

9.别忘了dump composer autoload

$ composer dump-autoload

二.使用

1.让我们首先创建以下RolePermission:

$owner = new Role;
$owner->name = ‘Owner‘;
$owner->save();

$admin = new Role;
$admin->name = ‘Admin‘;
$admin->save();

2.接下来,创建了两个角色让我们然后分配给用户。HasRole使用非常容易:

$user = User::where(‘username‘,‘=‘,‘Zizaco‘)->first();

/* role attach alias */
$user->attachRole( $admin ); // Parameter can be an Role object, array or id.

/* OR the eloquent‘s original: */
$user->roles()->attach( $admin->id ); // id only

错误解决办法:

问题1:Missing argument 2 for Illuminate\View\Engines\CompilerEngine::handleViewException(), called in E:\wamp\www\wholesale\apps\manage\compiled.php on line 9519 and defined
当操作多对的情况下,可以看看\vendor\zizaco\entrust\src\Entrust\HasRole.php 方面里面的第三个参数是的对了:public function roles()    {

        return $this->belongsToMany(Config::get(‘entrust::role‘), Config::get(‘entrust::assigned_roles_table‘), ‘user_id‘, ‘role_id‘);    }
时间: 2024-10-21 05:05:46

laravel(4.2) +Zizaco的相关文章

AdonisJs(Node框架)学习总结

先列出作为前端开发人员必须知道的10个NodeJs框架  AdonisJs 一个服务端渲染的MVC框架,它是 Laravel (PHP框架)的一个 NodeJS 版本. 可以安装脚手架工具adonis-cli,用于创建adonis项目. npm i -g @adonisjs/cli adonis new test-adonis cd test-adonis adonis serve --dev 然后就可以通过http://127.0.0.1:3333进行访问了 数据库相关 npm i --sav

优雅的 laravel(1)- Composer概述及其自动加载探秘

刚开始接触laravel,一天时间走马观花的看了一些官方文档之后便开始了laravel的学习.这里谈到的都是最基础的东西,各路大神,可直接略过. composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具库,Composer就会帮你安装这些依赖的库文件.运行 Composer 需要 PHP 5.3.2+ 以上版本. 使用composer 第一步,声明依赖关

学渣也要搞 laravel(1)—— 安装篇

看到laravel(我叫它:拉瓦)那么热门,我也决定学上一学. Laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支持.隐式模型绑定.简化Eloquent 全局作用域.可选择的认证脚手架.中间件组.访问频率限制.数组输入验证优化等等.[其实这些我也不知道是什么,先了解了解和上个laravel5.1的比较,添加了那么多功能是不是学习的激情越来越强烈.] 如果想具体了解的话请点我. 1. 开始安装 开发环境满足以下要求: PHP版本 >= 5.5.9 PHP

菜鸟学Laravel(零) 为什么选择Laravel

菜鸟学Laravel(零): 为什么选择Laravel 本人Web方面的菜鸟一枚,突然想想学习PHP开发,就看了一下相关的介绍,Java和PHP语言是目前的主流,因为PHP入门相对较Java容易,因此选择了PHP作为学习的语言,找了几本PHP.Mysql.JavaScript.CSS等方面的知识学了一下,觉得利用PHP开发简单的网站还是非常快速而且方便的,用Smarty开发了一个小网站,发现问题很多,因此萌发了利用其它框架编写网站的想法,看了一下框架占比,给吓到了,框架太多了!选择laravel

学渣也要搞 laravel(2)—— HTTP路由[1]篇

前几天忙了,然后快两个星期没有发博客.今天正式回归.哈哈 1. 路由 说到路由当时学的时候给我疑惑了几天..没有仔细看文档.然后一脸蒙蔽的去用 postman[谷歌插件] 测试路由方法.然后就很奇怪 composer 下载下来的 laravel 为什么在 postman 里面测试的只有 get 路由方法能使用,类似这样 : laravel 的路由在app/Http/routes.php 这个文件(中文文档:点我) 在routes.php里面添加了一个get方法 1 Route::get('tes

Laravel 服务容器 IoC(控制反转) 和 DI(依赖注入)

Laravel 服务容器 IoC(控制反转) 和 DI(依赖注入) IoC 容器, laravel 的核心 Laravel 的核心就是一个 IoC 容器,根据文档,称其为“服务容器”,顾名思义,该容器提供了整个框架中需要的一系列服务.作为初学者,很多人会在这一个概念上犯难,因此,我打算从一些基础的内容开始讲解,通过理解面向对象开发中依赖的产生和解决方法,来逐渐揭开“依赖注入”的面纱,逐渐理解这一神奇的设计理念. 本文一大半内容都是通过举例来让读者去理解什么是 IoC(控制反转) 和 DI(依赖注

Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 https://app.vagrantup.com/laravel/boxes/homestead 如果是刚刚接触Laravel的朋友,请直接按文中步骤操作.需要更新及重装的朋友们请注意使用第二个地址来进行文中操作. 虽然我通常习惯在Linux环境下工作,但对于一个从小就接触Windows的人来说,能够在

Laravel(PHP)使用Swagger生成API文档不完全指南 - 基本概念和环境搭建 - 简书

在PHPer中,很多人听说过Swagger,部分人知道Swagger是用来做API文档的,然而只有少数人真正知道怎么正确使用Swagger,因为PHP界和Swagger相关的资料实在是太少了.所以鄙人斗胆一试,希望能以本文帮助到大家了解Swagger,从此告别成天用Word.Markdown折腾API文档的日子. 什么是Swagger Swagger is a simple yet powerful representation of your RESTful API. With the lar

Laravel5.1 学习笔记1, 目录结构和命名空间(待修)

自从用 Laravel4做了个小网站,使用了数据库ORM Eloquent, 就放下了一段时间,想不到这个与Asp.net MVC 有着异曲同工之妙的框架已经出了下个版本,而且还有不小的改动,因此不得不从头过一次,顺便更新一下知识点. 下面内容摘自Laravel 5.0 系列, 目录结构和命名空间 Laravel从4升级到5 ,改变的不只是文件的组织方式,而且是思想上的重大转变. 废话不多说, 新版本的目录. app Console Commands Events Exceptions Http