Laravel Eloquent ORM 入门(1)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Laravel Eloquent ORM 入门(1),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3022字,纯文字阅读大概需要5分钟。
内容图文
![Laravel Eloquent ORM 入门(1)](/upload/InfoBanner/zyjiaocheng/1025/0a347a7025da492cbc1326a62bb08091.jpg)
Laravel Eloquent ORM
创建模型
php artisan make:model User // 默认对应的表是 users
php artisan make:model AbCd // 默认对应的表是 ab_cds
/**
规则:
1. 除第一个大写字母,其他大写字母前都加上下划线
2. 所有的大写字母改成小写
3. 末尾加 s
*/
创建数据表
php artisan make:migration create_identity_cards_table
// 生成迁移文件,该文件是用来创建数据表的
php artisan migrate // 运行迁移文件,即创建数据表
php artisan migrate:rollback // 回滚迁移操作
填充数据表
php artisan make:seeder UsersTableSeeder
<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
}
}
我们可以将填充逻辑编写到 run 方法里:
public function run()
{
DB::table('users')->insert([
'name' => str_random(10),
'email' => str_random(10).'@gmail.com',
'password' => bcrypt('secret'),
]);
}
php artisan db:seed --class=UsersTableSeeder
模型之读
App\User::all(); // 返回包含所有对象的集合
\App\User::where('name', 'John')->first(); // 返回对象
\App\User::where('id', 1)->value('name'); // 返回值,例如 'leon'
\App\User::find(3); // 返回主键等于 3 的对象
\App\User::find([1, 2]); // 返回主键等于 1 和 2 的对象的集合
\App\User::pluck('age'); // 返回包含字段值的集合
\App\User::pluck('age', 'id'); // 返回关联集合 id => age,pluck 最多 2 个参数
\App\User::count(); // 返回记录总数
\App\User::max('id'); // 返回数字,库没有任何记录返回 null
\App\User::min('id'); // 返回数字,库没有任何记录返回 null
\App\User::avg('age'); // 返回数字,库没有任何记录返回 null,同名 averge
\App\User::sum('salary'); // 返回数字,库没有任何记录返回 0
select
$users = \App\User::select('name', 'email as user_email')->get();
$users = \App\User::distinct()->get();
// select distinct * from `users1`
$query = \App\User::select('name');
$users = $query->addSelect('age')->get();
// select `name`, `age` from `users`
->selectRaw('department, SUM(price) as total_sales')
->groupBy('department')
->havingRaw('SUM(price) > ?', [2500])
->orderByRaw('updated_at - created_at DESC')
->get();
排序、分组和分页
orderBy('name', 'desc')
latest() // === orderBy('created_at', 'desc')
inRandomOrder()
// order by RAND()
->groupBy('account_id')->having('account_id', '>', 100)
->groupBy('site', 'qianjinyike.com')->having('account_id', '>', 100)
skip(10)->take(5) // 等价于 offset(10)->limit(5)
// limit 5 offset 10
分支执行 sql
// $role 有值才会执行闭包
$role = $request->input('role');
$users = \App\User::when($role, function ($query) use ($role) {
return $query->where('role_id', $role);
})
->get();
// $sortBy 有值执行第一个闭包,否则执行第二个闭包
$sortBy = null;
$users = \App\User::when($sortBy, function ($query, $sortBy) {
return $query->orderBy($sortBy);
}, function ($query) {
return $query->orderBy('name');
})
->get();
内容总结
以上是互联网集市为您收集整理的Laravel Eloquent ORM 入门(1)全部内容,希望文章能够帮你解决Laravel Eloquent ORM 入门(1)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。