分类 Laravel 下的文章

之前在Laravel框架自带的ORM封装查询方法时
假如$query是模型对象

$query->where('id' , 1);
$query->where('source_id' , 1);
return $query;
dd($query->get());

在某些前人封装的查询方法里是可以使用到条件的。
看了下源码发现select,where等方法是在Illuminate\Database\Eloquent\Builder里,返回的是$this
而刚实例化模型后是先返回继承了Illuminate\Database\Eloquent\Model的对象,此时还没实例化Builder
此时只需要做一次

$query = $query->slecet(['id','name','...']);

触发Builder里的方法(也包括where、orderBy等),然后$query此时就已经把Builder实例化,
可以无需赋值直接$query->where('id' , 1),具体为什么无需赋值后面再研究下。

问题出现原因及描述

Laravel版本:5.6
在项目中打算开一个新的模块叫App,
我们是用二级域名来区分模块,所以先通过app\Providers\RouteServiceProvider的map()中先对当前$_SERVER['HTTP_HOST']进行匹配,然后设置相应的namespace、domain、middleware以及路由文件。
因为之前没搞清楚Laravel的Session运行原理,所以在这里并没有设置中间件。

- 阅读剩余部分 -