laravel参数验证规则扩展示例,如下: <?php namespace App\Library; use App\Models\ProvinceCityCounty; use Input; use Validator; class ValidatorRules { public static function extend() { self::identitycards(); self::cloudFileId(); self::id(); self::strwidth(); self::equal(); self::mod(); self::mobile(); self::surname(); // 真是姓......
laravel Eloquent使用groupBy()返回每个组的计数。示例:查询每个用户产生的日志数,并返回一个以uid为key的二维数组。 $user_log_num_list = UserLog::select('uid', DB::raw('COUNT(id) AS num')) ->whereIn('uid', $uid_list) ->groupBy('uid')->get()->keyBy('uid')->toArray();
今天碰到一个很奇葩的问题,卡了我很久。用laravel写查询,加了 GroupBy 之后再 count,和原生语句里统计的数量不对。搞了很久,终于知道原因了。 第一:GroupBy之后的Count返回的是分组后的第一组的数量 通过GroupBy分组后,再执行Count()函数返回的是:分组后数据,第一个分组的数量。 正确的方法应该是: $count = VipCard::where('uid', $uid)->count(DB::raw('DISTINCT(serial_number)'));
laravel的验证可以直接在控制器里面这样验证: $validatedData = $this->validate([ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ]); if ($validatedData ->fails()) { //未通过处理 } 或 Validator::make($request->all(), [ 'title' => 'required|unique:posts|max:255', 'body' => 'required', ])->validate(); 但在控制器里面直接验证,没有做到分离。这样我们可以把表单......
laravel5.6 关联模型的操作,主要是一对一,一对多,多对多等操作.下面示例主要解析前面两个操作用法比较常用.(操作和用法TP5类似) 将关联查询使用语法hasOne、hasMany、belongsTo进行一个举例说明? hasOne:有一个,加上主谓语应该是, A 有一个 B hasMany:有很多, A 有很多 B belongsTo:属于, A 属于 B demo示例: 假设Users模型和News模型存在关联关系.两表sql和假设数据如下: users.sql sql文件 1 DROP TABLE IF EXISTS `u......
laravel 为 Request 添加一个变量并赋值。 if(!$request->page){ request()->offsetSet('page', 1);//分页页码没有传则设置为1 }
概述 事件是一种常见的观察者模式的应用。简单的来说,就是当... 干...。这个当... 和干... 在 laravel 事件中分别对应: 当 (event)... 干 (listener)... 放置 event 和 listener 文件的位置分别是: app/Events app/Listeners 对于产品经理来说,事件主要用来规范你的业务逻辑,使支线逻辑与主线逻辑独立分拆。对于程序员来说,事件可以让 Controller 变得非常简洁,解耦,可维护。 定义事件 (Event) 用 Artisan 命令可以快......
在laravel框架中记录日志的时候,一般都会使用 Log::info() 方法,该方法会将日志全部记录在 storage/logs/laravel.log 文件里,这样的问题是当日志文件比较多的时候查找起来比较麻烦。这里记录一下将日志单独记录在自定义的文件里面去的方法。 laravel文档里没有写,于是我去翻laravel的源码,结果还真给我找到了。只需在你的代码中加入 Log::useDailyFiles(storage_path('logs/zabbix/error.log')); 这样日志就会单独记录在 ......
/** * 导出订单商品列表数据 * @param array $data_list * @return bool * @throws ActionException */ private static function exportOrderProductListToExcel(array &$data_list) { if (!$data_list) { throw new ActionException('没有数据不需要导出', 101); } $result = \Excel::create(date('订单商品数据列表Y-m-d H:i:s导出'), function ($excel) use ($data_list) { $excel_table_he......
laravel 参数验证功能非常强大,这里将平时写的一个比较全的验证记录一下,以备忘,具体代码如下: <?php /** * Created by PhpStorm. * User: yhm * Date: 19-6-6 * Time: 下午3:48 */ namespace App\Http\Requests\Admin; use App\Models\CoursePromotion; use App\Models\CoursePromotionAgents; use App\Models\Quan; use App\Models\QuanActivity; use Illuminate\Foundation\Http\FormRequest; use Mockery\Excepti......
使用 laravel 框架开发的时候,有时候需要测试一段代码生产的 SQL 语句,这里分享一种通过注册监听器的方法查看实时的SQL语句。 第一步:创建监听器 php artisan make:listener QueryListener --event=illuminate.query 生成新文件 app/Listeners/QueryListener.php,删除该文件自动填充的所有代码,以下面的代码替换: <?php namespace App\Listeners; use Illuminate\Database\Events\QueryExecuted; use Illuminate\S......
下面我们来看一篇关于laravel Eloquent下with() 函数只返回指定列的例子,希望这个例子能够为各位带来帮助,具体的如下所示。 通过 with 函数获取数据的例子参照:laravel实现一对多关联模型数据查询 接着上面这篇文章,我们知道这里获取的是 user 的所有字段信息,但是我们可能并不需要 user 表中所有的字段,例如我们只需要 id 和 name 两个字段,即: select * from `posts` select id,name from `users` where `users`.`id......
在使用laravel ORM的Model方法find, get, first方法获取数据对象时返回的数据对象的attributes属性数组里会包含数据表中所有的字段对应的键值关系, 那么如何在ORM查询时只返回数据表中指定字段的数据呢? 很多时候,文档上没有写明的用法需要我们去看源码来探究的,下面我们就来看一下这三个方法的实现。 由于ORM依赖了QueryBuilder来实现查询, 在QueryBuilder的源码里通过查看get,first方法的实现可以到,他们都可以接收一个......
本文我们就是要通过laravel的一对多的关联模型来快速实现数据的调用。 假如我们现在有两张表:user 和 posts,每个 user 可以拥有多个 posts,而每一篇 posts 只能属于一个 user,两者的关系是明显的一对多关系。 user 表和 posts 表表结构如下: CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `name` char(30) NOT NULL DEFAULT 'www.phpernote.com' COMMENT '名称', `ctime` timestamp NULL ......
laravel 的验证功能非常强大,基本上常见的需求都有对应的验证规则,对于一些的特殊的验证需求,laravel 也提供了正则验证。 官方文档: regex:pattern 注:使用 regex 模式时,如果正则中使用管道符 |,正则规则必须放在数组中。例如: public function rules() { return [ 'username' => 'required|regex:/^[a-zA-Z0-9_-]{4,16}$/' ]; } 上面这个正则验证,是没有问题的(因为没有使用管道符 | ),但官方推......
laravel框架下 where 条件查询很简单,这里就不写了,这里主要记录一下平常不怎么用的 orWhere 多条件 or 查询语句的拼接,示例如下: (1)SQL 语句: select `id` from `user` where (`email` = 'admin@phpernote.com' and `password` = '123456') or (`mobile` = '13681127231' and `password` = '123456'); laravel model 语句: User::select(['id']) ->where(function ($query) use ($userName, $password) { ......
关于事务的知识可参考本站: 关于数据库(MySQL)事务 关于数据库事务的一些说明 laravel框架内使用事务 想要在laravel框架中使用数据库事务中运行一连串操作,可以使用 DB 类的 transaction 方法。 使用 transaction 方法时不需要手动回滚或提交,如果事务闭包中抛出异常,事务将会自动回滚;如果闭包执行成功,事务将会自动提交。 DB::transaction(function () { if (!DB::table('users')->update(['votes' => 1])......
laravel DB类SQL语句操作整理。 1、从数据表中取得单一数据列 $user= DB::table('users')->where('name','John')->first(); 2、检索表中的所有行 $users = DB::table('users')->get(); foreach ($users as $user) { var_dump($user->name); } 3、从表检索单个行 $user = DB::table('users')->where('name', 'John')->first(); var_dump($user->name); 检索单个列的行 $name = DB::table('users')->where('name', 'Jo......
laravel 提供了强大的表单验证规则,我在项目中 exists 和 unique 用得比较频繁,参照官方文档写下此文,以便记录下这两个规则的详细用法,以下基于 laravel 5.4 提供了使用字符串和 Illuminate\Validation\Rule 两种方式生成规则的方法。 exists:table,column 验证字段的值是否存在于数据库指定表的指定列中,如果不存在将会抛出异常,这里是关于 exists 规则的详细说明。 基本用法 验证 users 表中是否存在 email 等于指定的......
laravel 打印SQL语句 \DB::connection()->enableQueryLog(); //开启执行日志,加在需要打印的SQL语句之前 $list = self::where(['investorid'=>$id])->whereBetween('inserttime',[$start,$end])->where('deposit','>',0)->orderBy('id','asc')->Paginate(20); print_r(\DB::getQueryLog()); //获取查询语句、参数和执行时间 若报DB找不到,则在顶部添加如下引用(添加完后去掉上面代码中DB前的斜线): use Illuminate\Sup......
本篇文章记录一下php laravel框架下的常见的数据库CURD操作以及数据库连贯操作的用法。 一、Selects 检索表中的所有行 $user_list = DB::table('users')->get(); foreach ($user_list as $user){ var_dump($user->name); } 从表检索单个行 $user = DB::table('users')->where('name', 'John')->first(); //相当于:$user = DB::table('users')->where(['name', '=', 'John'])->first(); var_dump($user->name); 检索......
laravel 对验证应用的输入数据提供了多中途径的实现。默认的,laravel 的基础控制器类使用了 ValidatesRequests trait,该性状允许使用各种强大的验证约束来验证 HTTP 的输入请求。 为了了解 laravel 强大的验证功能,下面我们以一个完整的示例来描述表单的验证,并将表单验证的错误信息显示给用户。 (1)定义路由 首先,让我们假定我们在 app/Http/routes.php 文件中拥有下述的路由: // 显示页面 Route::get('post/create'......