Php Laravel中 权限处理问题

php开发中,使用的Laravel中遇到的问题,以及解决的思路


问题:权限控制中,简单的处理 有权限的 可以显示某个div 并实现某个特定的方法,但是,如果当登陆用户级别达不到,输入特定的链接后,页面神奇的打开了,并且能执行相关的方法。
![在路由里,我没有加入相关的权限控制](https://img-blog.csdn.net/20160722145053657)

解决方案:


class UserCenterController extends Controller
{
    public function create()
    {

        $userid = Auth::user()->id;  //在这里得到登录用户的id
        $user = new User();
        $company = new Company();
        $company_id = DB::table('td_user_info')
            ->where('id', $userid)
            ->first();               //得到与用户相关的公司的编号
        $permissions = DB::table('td_companies')
            ->where('id', $company_id->company_id)
            ->first();               //得到公司表中相关权限的信息
        //print_r($permissions->permissions);die;
        if ($permissions->permissions != 2) { //在这里我的权限是按照1,2,3来划分的
            $tag = 4;
            $goods = Category::where('type_name', '=', 2)->orderBy('updated_at', 'desc')->get();
            $user = DB::table('td_user_info')
                ->join('td_companies', 'td_companies.id', '=', 'td_user_info.company_id')
                ->whereIn('td_companies.permissions', [1, 3])
                ->select('td_companies.permissions', 'td_user_info.status_certify', 'td_user_info.id')->get();
            $warehouses = DB::table('td_warehouses')
                ->where('td_warehouses.delete', '=', '1')
                ->get();

            return view('userCenter.supplyAndDemand.publish')
                ->with('warehouses', $warehouses)
                ->with('tag', $tag)
                ->with('goods', $goods)
                ->with('user', $user);
        } else { //无权限,返回404页面
            abort('404');
            //return view('errors.404');
        }
}

在此之前,一直纠结一个问题,我得到的 以下数据均为实体格式,进行传递的时候,一直抱错

$company_id

$permissions

当时这一块是这么写的

        $userid = Auth::user()->id;  //在这里得到登录用户的id
            $user = new User();
            $company = new Company();
            $company_id = DB::table('td_user_info')
                ->where('id', $userid)
                ->first();               //得到与用户相关的公司的编号
            $permissions = DB::table('td_companies')
                ->where('id', *$company_id*)
                ->first();               //得到公司表中相关权限的信息
            //print_r(*$permissions*);die

后来才发现,是因为没有办法将一个object class 转成String格式, 然后对上边进行了改进,
最终,实现了,对权限控制的简单处理。

你可能感兴趣的:(Php总结)