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格式, 然后对上边进行了改进,
最终,实现了,对权限控制的简单处理。