Laravel URI获取方法
能看懂的自然明白,呵呵。
public function getRouteHashId($route){
$uri = $route->getUri();
$method = $this->getMethod($route);
return md5($method.'|'.$uri);
}
public function getRouteHashId($route){
$uri = $route->getUri();
$method = $this->getMethod($route);
return md5($method.'|'.$uri);
}
fill
方法是一个只给已有 Eloquent
实例赋值属性的方法,注意是“只给”啊!!在你调用 fill
方法的时候,Laravel
首先就会去检测当前 Model
的状态!
当你设置了 fillable
数组,没有设置 guarded
数组时,那么此 Model
会处于 仅可批量赋值指定属性 的状态;
当你没有设置 fillable
数组,却设置了 guarded
数组时,那么此 Model
会处于 可批量赋值任何属性 的状态;
至于你同时设置了 fillable
与 guarded
数组的情况就不去讨论了,因为这样做本身就是被 Laravel
所禁止的;
然后调用 fillableFromArray
去获取 attributes
与 fillable
数组的交集,如果你没有定义 fillable
或者禁用掉了守卫,那么此方法会直接返回 attributes
然后 Laravel
会对返回的数组做一个循环,在这个循环中 Laravel
会对每一个属性调用 isFillable
方法检测这个属性是否可以被填充,如果没有通过此方法的检测(不存在于fillable
数组中并且没有设置 guarded
数组或存在于 guarded
数组中),那么 Laravel
会检测当前 Model
是否处于 仅可批量赋值指定属性 状态,如果是,那么会直接抛出一个 Exception
,然后 Laravel
会返回完成赋值操作后的 $this
。
以上就是 Eloquent
中 fill
方法的源码解析啦~,Laravel
的源码读下来还是很清晰易懂的~,不得不再次佩服 Laravel
的设计,不愧为 巨匠级框架。
转自: https://www.ucloud.cn/yun/26186.html
<p>
<input id="list" onclick="acheck1()" type="radio" name="list" value="1">选项1
<input id="list" onclick="acheck2()" type="radio" name="list" value="2">选项2
</p>
<p class="box1" style="display:none">点击第一个显示这里</p>
<p class="box2" style="display:none">点击第二个显示这里</p>
function acheck1(){
$(".box1").show();
$(".box2").hide();
}
function acheck2(){
$(".box2").show();
$(".box1").hide();
}
$(function(){
var list = $('#list:checked').val();
if( list == 1){
$(".box1").show();
}
if( list == 2){
$(".box2").show();
}
});
转载:https://blog.csdn.net/kaxixiaozheng/article/details/103125119
参考:https://blog.csdn.net/qq_44275894/article/details/111689856
在laravel api
的路由里用
auth()->attmpt(['username'=>'username', 'password'=>'password'])
返回 true
,但session
并没有储存。因为 app\Http\Kernel.php
里 $middlewareGroups
并没有启用
\Illuminate\Session\Middleware\StartSession::class,
这个中间法,这样使得api
里的路由无法使用session
。解决方法是将 \Illuminate\Session\Middleware\StartSession::class
,从 $middlewareGroups
移到 $middleware
,这样使得所有路由都可以使用session
了,在api
路由登录后,在web
自然可以用了。
https://tsy12321.gitbooks.io/phinx-doc/content/
vue create MyObject —default
项目根目录
下新建vue.config.js
文件:const path = require('path');
function resolve (dir) {
return path.join(__dirname, dir)
}
module.exports = {
lintOnSave: true,
runtimeCompiler: true, // 使用构建版vue
chainWebpack: (config)=>{
config.resolve.alias
.set('assets',resolve('src/assets'))
.set('components',resolve('src/components'))
//.set('easyui',resolve('src/easyui')) // 我这边是购买 了源代码,直接复制到src目录下使用
}
}
cd MyObject
https://www.jeasyui.net/download/vue.html
参考转载:https://www.jianshu.com/p/fa7156d008a3
if(isset($a) || isset($b) || isset($c)){
//todo...
}
优化为:
if(isset($a,$b,$c)){
//todo...
}
$result = ['a' => 'li', 'b' => 'yu'];
if(is_array('a', array_keys($result)){
//todo...
}
优化为:
if(array_key_exists('a', $result)){
//todo...
}
$myArray = [];
//....
if(empty($myArray)){
foreach($myArray as $key=>$val){
//toding...
}
}
优化为:
//可以不用进行为空判断直接循环,因为数组内部已经内置了空数组的判断。
foreach($myArray as $key=>$val){
//toding...
}
if($a){
//...
//N多行
//...
return 'secuss';
//...
}
可有优化为:
if(!$a){
return false;
}
//todo...
return 'success';
class User extends Model
{
#以下属性和方法都不是必须的,但是一般都要按需求定义一些
//定义关联的表名,不定义的话默认此模型关联的表为 模型名s (users)
protected $table = 'user';
/******字段相关*******/
#定义主键字段名,默认是id
protected $primaryKey = 'uid';
#定义字段白名单,允许操作表中的哪些字段
protected $fillable = ['uid','name'];
#定义字段黑名单,不允许操作表中哪些字段
protected $guarded = [];
//1、使用model::create([])等方法直接对orm对象操作使,必须定义$guarded或者$fillable
//2、使用$m = new model();然后$m->save()的方式不需要定义
//3、简便的方式就是定义$fillable = [];
#定义隐藏的字段
protected $hidden = [];
/******时间管理******/
#定义是否默认维护时间,默认是true.改为false,则以下时间相关设定无效
public $timestamps = true;
#定义数据行创建时间和修改时间的字段名称。默认created_at,updated_at,没有设null
const CREATED_AT = 'created';
const UPDATED_AT = null;
#此属性决定插入和取出数据库的格式,默认datetime格式,'U'是int(10)
protected $dateFormat = 'U';
//如果不设置,无论存储格式是datetime还是int,则取出时是Carbon对象
//Carbon对象返给前端时自动变为datetime字符串,后端谨慎处理
#如果数据库存的是datetime或者没定义$dateFormat,又想取出的时候是int...
public function getDates(){
return ['created_at'];
}
//这里只能是created_at,updated_at,不是你自己的字段
#软删除字段deleted_at
use Illuminate\Database\Eloquent\SoftDeletes;
protected $dates = ['deleted_at'];
#查询数据时会自动排除掉deleted_at非null的数据,若想带上使用User::withTrashed()
#删除某条数据时使用$user->delete()然后save()即可。deleted_at由null变为时间.
/******序列化******/
#toArray和toJson就是序列化方法,都是递归的。
#把ORM查询的数据自动转换。例如把int转boolean,时间戳转时间,json转成数组等。
protected $casts = [
'created' => 'date:Y-m-d',
'updated' => 'datetime:Y-m-d H:i',
'jsonData' => 'array',
'intSwitch' => 'boolean'
];
//关于这个时间的序列化,当作为接口返回的时候有效,如果直接直接页面渲染无效.
//时间序列化,当$timestamp为true时,无论是update还是new的方式插入新数据,都要是datetime
//注意取出的jsonData即是数组,而插入jsonData时也得是数组,不要json_encode
/**自定义数据返回***/
#再如果,你想拿出来就是'2018/08/08 12:00'这种自定义格式,好比'sa_time'
public function getSaTimeAttribute($value){
return date('Y/m/d H:i',$value);
}
//注意方法名是根据字段来的。同理,这种方法可以处理任何字段
}
转自:https://blog.csdn.net/z772532526/article/details/81302990
【白话篇】https://blog.csdn.net/bestone0213/article/details/47424255
【理论篇】https://segmentfault.com/a/1190000018948909
$arr = [1,2,3];
[$a,$b,$c] = $arr;
var_dump($a,$b,$c);
//1, 2, 3
intdiv(10,3);
//3
isset($_GET('a') ?? 0;
等价于:
isset($_GET('a') ? isset($_GET('a') : 0;