首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel学习记录--Model

']; 数据库添加 Model::create(['表字段名'=>'值','字段名'=>'值']) 简单查询 详情访问laravel查询构造器 $model->where()->first()//单行查询...如: hasOne(class,foreignkey,primarykey); class:关联模型的类名 foreignkey:关联模型的外键,如果不指定默认外键在这里默认为 muser_id...在定义关联时,您可以使用wherePivot(限定条件)和wherePivotIn(限定区间)方法过滤belongsToMany返回的结果。...,在本例中按照默认拼接规则为 当前模型类名_id;这里就是(Countrie_id)secondKey:中间模型类与关联模型类的关联外键,如果不指定,在本例中按照默认拼接规则为关联模型类_id;这里就为...,并且没有放在数组里的id会被移除,如果是这样的话那1号学生选修的课程1将被移除,同时会向中间表添加课程id=9的记录 接下来看他的执行过程是否与我们想的一样 通过Laravel Debugbar

13.6K20

3分钟短文:说说Laravel模型关联关系最单纯的“一对一”

[img] 所以,laravel模型提供了关联关系,本文就来梳理梳理那些用法。 代码时间 我们不要PPT似的念稿子,罗列出所有的关系模型,那样不直观也不是高效学习的方式。...Model {} 因为使用了 --migration 选项,laravel自动生成了 database/migrations/2020_10_11_015236_create_profiles_table.php...首先使用 User::find($id) 返回的是一个 User 模型对象的实例。 该实例有一个 profile 方法,就是上面这段关系声明。...需要特别注意的是,类似下面的写法,返回结果是不同的: $user = User::find($id); $user->profile; // 返回 Profile 对象 $user->profile()...id')->on('users')->onDelete('cascade'); 写在最后 本文介绍了laravel模型关联的最简单的“一对一”,我们从程序角度和数据库角度讲解了 如何在删除资源时的一致性删除

2K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Laravel系列4.4】模型Eloquent ORM的使用(二)

    而另外一个 map() 函数就不用多说了,之前我们说过,Laravel 的 PDO 在默认查询构造器的情况下,走的是 PDO::FETCH_OBJ ,获得的集合结果中的每个数据都是一个 stdClass...对象,而在 Model 下,走的则是 PDO::FETCH_CLASS ,也就是会和我们指定的模型类关联上,获得的结果都是一个 App\Models\MTest Object 对象。...Route::get('model/test/ser/array', function(){ $mTest = \App\Models\MTest::find(1); dump($mTest...Route::get('model/test/ser/json', function(){ $mTest = \App\Models\MTest::find(1); dump($mTest...然后我们来看一下这个 Model 基类中的其它方法,貌似没有发现 get() 、find() 之类的方法呀?这是怎么回事。别急,get() 、find() 不都是在 查询构造器 中的方法嘛。

    2.8K20

    跟我一起学Laravel-EloquentORM基础部分

    // } }); 查询单个结果 使用find和first方法查询单个结果,返回的是单个的模型实例 // 通过主键查询模型......= App\Flight::find([1, 2, 3]); 如果查询不到结果的话,可以使用findOrFail或者firstOrFail方法,这两个方法在查询不到结果的时候会抛出Illuminate...where('legs', '>', 100)->firstOrFail(); 如果没有捕获这个异常的话,laravel会自动返回给用户一个404的响应结果,因此如果希望找不到的时候返回404,是可以直接使用该方法返回的...Route::get('/api/flights/{id}', function ($id) { return App\Flight::findOrFail($id); }); 查询聚集函数结果...指定$fillable属性的目的是该属性指定的字段可以通过create方法插入,其它的字段将被过滤掉,类似于白名单,而$guarded则相反,类似于黑名单。

    85220

    为什么 Laravel 这么优秀?

    Make Model # 我们的第一步是根据 Laravel 提供的 Artisan 命令生成对应的 Model;在实际的开发中我们通常会提供额外的参数以便生成模型的时候一起生成额外的模版文件,如数据库迁移文件...->primary(['course_id', 'student_id']); }); Model Relationship Laravel 另一个强大之处在于可以通过 Eloquent 抽象「模型与模型...来看一个例子: $course = Course::with('teacher', 'students')->find(1) // assert expect($course) ->id->toBe...我们还使用了 Laravel Resource 来格式化最终的输出格式,这样做的原因是很多情况下我们不希望直接将数据库的字段暴露出去,你甚至还能在 Laravel Resource 中按不同的角色显示不同的字段...我其实很不明白作为一名工程师为什么我们会瞧不上某一门语言?

    26610

    开源推荐 - 极简+高性能+分布式框架,可运行于多种环境(apachephp-fpm,swoole)

    所以你会发现one框架的 路由 和 ORM 有laravel的影子。但也有一些自己的特色,例如 ORM 支持自动化缓存(自动化读、写、刷新)保持与数据库同步,对外使用无感知。...'@httpSend'); }); 复制代码 orm 模型 定义模型 namespace App\Model; use One\Database\Mysql\Model; // 模型里面不需要指定主键...,框架会缓存数据库结构 // 自动匹配主键,自动过滤非表结构里的字段 class User extends Model { // 定义模型对应的表名 CONST TABLE = 'users'...); } // 定义事件 // 是否开启自动化缓存 // …… } 复制代码 使用模型 fpm swoole // 查询一条记录 $user = User::find...105 $res = $abc->setA(100)->add(2,3); // 如果把上面的模型的User添加到rpc // RpcServer::add(User::class); // 下面运行结果和上面一样

    67730

    谨慎使用 Laravel 的 Model 复制(replicate)功能

    ,我们的产品有一个交互是用户可以复制自己的日程,我们当时实现的时候仅仅花了不到半小时就上线了,完事还夸了 Eloquent 真的是面面俱到,连复制功能都做好了,代码如下: $item = Item::find..." = "null" THEN 0 ELSE `properties`->>"$.meeting_id" END'); }); 关于虚拟字段的内容可以参考:http://mysql.taobao.org.../monthly/2017/12/09/,在 Laravel migration 中的用法如上,不过我加了一些条件处理。...我检查 SQL 才发现 $item->replicate() 是直接对 Model 的 $attributes 字段复制,也就是不会经过 $fillable 字段过滤,导致最终生成的 insert 语句中存在虚拟字段赋值...于是复制逻辑不得不修改为: $item = Item::create( array_merge( Item::find($request->input

    3K10

    3分钟短文 | Laravel同时连接多个数据库,你用啥办法?

    则需要这样写: Schema::connection('mysql2')->create('some_table', function($table) { $table->increments('id...所以我们使用模型操作数据库,那么指定某个 Model 使用哪个数据库的哪个表,只需要在模型文件内显式声明: class SomeModel extends Model { protected $...Laravel 的灵活还不止这一点半点,如果在Model内不指定$connection,你还可以在控制器内,在命令行程序内,在队列内,在中间件内,在监听器内,都可以任意指定某个Model连接: class...new SomeModel; $someModel->setConnection('mysql2'); // 非静态方法 $something = $someModel->find...(1); $something = SomeModel::on('mysql2')->find(1); // 静态方法 return $something; }

    1.4K10
    领券