laravel8 前后端分离方案(laravel 根据不同组织加载不同视图的实现)
类别:编程学习 浏览量:1357
时间:2021-10-03 01:13:28 laravel8 前后端分离方案
laravel 根据不同组织加载不同视图的实现一,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 根据不同组织加载不同视图的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/zhangjun1013/article/details/78950274
您可能感兴趣
- laravel怎么获取单个框架(laravel-admin自动生成模块,及相关基础配置方法)
- laravel循环插入数据(Laravel 实现关系模型取出需要的字段)
- laravel查询限制输出设置(laravel 获取某个查询的查询SQL语句方法)
- laravel如何使用预处理(Laravel项目中timeAgo字段语言转换的改善方法示例)
- phplaravel一般开发什么项目(laravel 去掉index.php伪静态的操作方法)
- laravel新增数据表(laravel实现上传图片的两种方式小结)
- laravel队列大批量数据(laravel 中某一字段自增、自减的例子)
- laravel自定义使用方法(laravel 修改.htaccess文件 重定向public的解决方法)
- laravel时间日期字段比较(Laravel find in set排序实例)
- laravel数据库操作方式(Laravel 实现数据软删除功能)
- laravel开发api实例(Laravel框架集成UEditor编辑器的方法图文与实例详解)
- laravel认证系统(Laravel框架Auth用户认证操作实例分析)
- laravel定时脚本(laravel实现按时间日期进行分组统计方法示例)
- laravel线上如何调试(解决Laravel 不能创建 migration 的问题)
- laravel命令控制器怎么设置(Laravel获取当前请求的控制器和方法以及中间件的例子)
- laravel前后端分离模块化(laravel 实现划分admin和home 模块分组)
- NVIDIA显卡份额冲上88 A饭发愁 游戏优化恐没A卡份了(NVIDIA显卡份额冲上88A饭发愁)
- AMD YES A卡还是N卡 A卡和N卡的区别(AMDYESA卡还是N卡)
- 以后显卡多了一个新选择,N卡和A卡外又多了个I卡(以后显卡多了一个新选择)
- 读卖乐园的彩灯(读卖乐园的彩灯)
- 新疆80后在淘宝卖干果 以前是 不务正业 如今帮乡亲致富(新疆80后在淘宝卖干果)
- 弄清楚了销 售 买 卖这四个字,母婴生意做起来就没那么难了(弄清楚了销售买)
热门推荐
- jsonkeyvalue怎么取(替换json对象中的key最佳方案)
- SQL语句分析工具Plan Explorer
- win7如何搭建php环境(阿里云Win2016安装Apache和PHP环境图文教程)
- docker容器运行环境(Docker 清理环境操作)
- 深入理解mysql索引(MySQL中冗余和重复索引的区别说明)
- django开发平台运用的技术(django的ORM模型的实现原理)
- dedecms数据库优化(dedecms友情链接flink增加下拉菜单的方法)
- dedecms默认模板目录(DEDECMS 5.7 将data目录迁移后,网站地图无法打开和更新的解决方法)
- 云盘zip怎么解压(云主机的文件如何压缩解压?)
- 在网页中插入百度地图
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9