09_Laravel模型

Laravel模型

AR模式三个核心(映射):

  1. 每个数据表 ----- 与数据表进行交互的Model模型映射(实例化模型)
  2. 记录中的字段 ----- 与模型类的属性映射(给属性赋值)
  3. 表中的每个记录 ----- 与一个完整的请求实例映射(具体的CURD操作)

定义模型

模型位置

位于:app/

命名规则
  1. 首字母大写的表名
创建模型

php artisan make:model 模型名

模型限制
  1. 定义表名,模型所对应的默认表名是模型类名复数形式,如果表名不统一则需要指定一下
  2. 指定主键名,默认主键是ID,若自定义主键名称不是ID,则需要指定一下
  3. 指定时间戳,模型操作会认为在你数据库表中有created_at和update_at字段。如果你不希望让模型来自动维护这两个字段,可在模型内将$timestamps = false;
  4. 批量赋值,当通过 create 方法来保存数据时,你需要先在你的模型上定义$fillable或$guarded属性

在控制器中使用模型

  • 需要引入此模型,也可以使用别名。
创建模型
<?php

namespace App\sql_6;

use Illuminate\Database\Eloquent\Model;

class Info extends Model
{
	// 定义表名,模型所对应的默认表名是模型类名复数形式,如果表名不统一则需要指定一下
	protected $table = 'info';
	// 指定主键名,默认主键是ID,若自定义主键名称不是ID,则需要指定一下
	protected $primaryKey = 'id';
	// 指定时间戳,模型操作会认为在你数据库表中有created_at和update_at字段。如果你不希望让模型来自动维护这两个字段,可在模型内将$timestamps = false;
	public $timestamps = false;
	// 批量赋值,当通过create 方法来保存数据时,你需要先在你的模型上定义$fillable或$guarded属性
	// 允许添加的字段
	protected $fillable = ['name'];
	// 拒绝添加的字段
	// protected $guarded = [''];
}

基本操作

  • 别忘记 .env 配置哟
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=sql_6
    DB_USERNAME=root
    DB_PASSWORD=1234
    
添加数据
  • 在laravel里面添加数据的时候,需要先实例化模型,然后为模型设置属性,最后调用save方法即可。
    public function fun1() {
    	$table = new Info(); // 实例化模型,将表和类映射起来
    	$table -> name = "AAA";
    	$table -> save();
    }
    
  • 如果使用create方法,则需要在模型中定义fillable属性,允许写入字段的定义,如果没有时间相关字段也需要禁用时间自动更新功能
    public function fun1() {
    	$table = new Info(); // 实例化模型,将表和类映射起来
    	$table -> create(['name' => 'BBB']);
    }
    
查询操作
  • find(id) 获取指定主键的一条数据
    public function fun2() {
    	$data = Info::find(4) -> toArray();
    	dd($data);
    }
    
  • all() 只能直接调用,不可以做其它操作,查询多行并且指定字段。
    public function fun2() {
    	// 别像这样写,all() 只可以直接调用
    	// $data = where('id','>','4') -> Info::all();
    	$data = Info::all();
    	dd($data);
    }
    
修改数据
  • 采用AR模式:先获取对应的记录,返回一个模型对象,然后为该模型对象设置要更新的数据(对象的属性),最后调用save方法即可。
    public function fun3() {
    	$result = Info::find(4);
    	$result -> name = "ABC";
    	$result -> save();
    }
    
  • update() 更新数据
    public function fun3() {
    	$result = Info::where('id','=','3') -> update(
    		[
    			'name'	=>	'AAA'
    		]
    	);
    	dd($result);
    }
    
删除数据
  • 采用AR模式:先查询出对应记录,返回一个模型对象,然后调用模型对象的delete方法即可。
    public function fun4() {
    	$result = Info::find(4);
    	dd($result -> delete());
    }
    
  • 可以这样
    public function fun4() {
    		$result = Info::where('id','3') -> delete();
    		dd($result);
    	}
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值