laravel 根据不同组织加载不同视图的实现


Posted in PHP onOctober 14, 2019

一,controller 层定义helper.php 文件

定义全局常量

public function __construct()
{
  $this->middleware(function ($request, $next) {
    $this->_user = Auth::user();
    //全局的数据处理,所有视图共用 
    $this->_beforeActionInit();
    if ($this->_user) {
      define('ORG_ID', $this->_user->organization_id);
      $this->_currentOrganization = Organization::find(ORG_ID);
    } else {
      define('ORG_ID', 0);
    }
    
    View::share('user', $this->_user);
    View::share('currentOrganization', $this->_currentOrganization);
    return $next($request);
  });
}




/** * 获取对应视图 */if (!function_exists('get_organization_view')) { /** * @param $flag * @return \Illuminate\Config\Repository|mixed */ function get_organization_view($flag, $org_id = 1) { $view = config("view.$flag." . $org_id); if (empty($view)) { throw new RuntimeException('Orgnization Error'); } return $view; }}


//二, config 下定义view.php
return [
  'register' => [
    1 => 'register.1',
    2 => 'register.2'
  ]
]
// 三,sercive 层定义UserService.php
public function getValidateRule($org_id)
{
 
    $rule = [//验证必填项,确认密码和密码要相同
      'userName' => 'required|alpha_num|size:6|regex:/^[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1}$/',
      'password' => 'required|min:6',
      'confirmPassword' => 'required|same:password',
    ];
  
  return $rule;
}

四,view下定义视图

register文件夹下有

1.blade.php,

2.blade.php

//五,controller下引用

/**
 * 注册
 */
public function register(Request $request)
{
  
    //提交注册
    if ($request->isMethod('post')) {
      $credentials = $request->only(['userName', 'password', 'confirmPassword']);//表单提交数据
      $rules = UserService::make($location->organization_id)->getValidateRule($location->organization_id);
      $validator = Validator::make($credentials, $rules);
      if ($validator->fails()) {//验证不通过
        return Redirect::back()->withInput()->withErrors($validator);
      }
      $exists = User::where('name', $credentials['userName'])->first();
      if ($exists) {
        $result = Lang::has("register.userExists") ? trans("register.userExists") : "User exists";
        return $this->_remind('error', $result, 'register');
      }
      $user = new User();
      $user->name = trim($credentials['userName']);
      $user->password = bcrypt($credentials['password']);
      if ($user->save()) {
        //注册成功
        return redirect('/login')->with('msg', Lang::has("register.success") ? trans("register.success") : 'Register Success.');
      } else {
        //注册失败
        $validator->errors()->add('other', $user);//如果注册失败会把错误原因返回
        return Redirect::back()->withInput()->withErrors($validator);
      }
    }
    return view(get_organization_view('register',$organization_id), ["location" => $location->name]);//加载视图
  } catch (\Exception $ex){
    $this->_remind('error', $ex->getMessage(),'getActivationCode');
  }
}

以上这篇laravel 根据不同组织加载不同视图的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP clearstatcache()函数详解
Mar 02 PHP
打造超酷的PHP数据饼图效果实现代码
Nov 23 PHP
php中strtotime函数用法详解
Nov 15 PHP
php绘制圆形的方法
Jan 24 PHP
在Windows XP下安装Apache+MySQL+PHP环境
Feb 22 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
php实现微信扫码支付
Mar 26 PHP
PHP十六进制颜色随机生成器功能示例
Jul 24 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 #PHP
laravel 自定义常量的两种方案
Oct 14 #PHP
Laravel如何实现自动加载类
Oct 14 #PHP
解决laravel资源加载路径设置的问题
Oct 14 #PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 #PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 #PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 #PHP
You might like
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
jQuery zTree树插件的使用教程
2019/08/16 jQuery
Node对CommonJS的模块规范
2019/11/06 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
python实现聊天小程序
2018/03/13 Python
python更改已存在excel文件的方法
2018/05/03 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
python+flask编写一个简单的登录接口
2020/11/13 Python
python实现经纬度采样的示例代码
2020/12/10 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
行政文员岗位职责
2013/11/08 职场文书
人事助理自荐信
2014/02/02 职场文书
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
运动会新闻报道稿
2015/07/22 职场文书
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
mysql查看表结构的三种方法总结
2022/07/07 MySQL