网站首页 > 文章精选 正文
模型关联在laravel框架中很常见,需要搞清楚到底谁关联谁,也就是说谁是主表谁是从表,
例如去银行办业务,需要用到排队编号,一个客户对应一个编号,从客户表中通过编号ID查询编号,那么就是客户关联编号,客户是主,编号是从。这种是典型的一对一模型关系。
下面让我们先来新建一个客户表和排队编号的生成文件。
执行命令:
php artisan make:migration create_clients_table
php artisan make:migration create_nums_table
执行上面命令后,发现已经生成了两个文件:
接下来,我们需要进一步设计设计表结构,关于生成文件的可用字段类型,Illuminate\Database\Schema\Blueprint 提供了多种方法,Blueprint.php的路径是:\vendor\laravel\framework\src\Illuminate\Database\Schema。
2022_08_29_073411_create_clients_table.php中新增
public function up()
{
Schema::create('clients', function (Blueprint $table) {
$table->id();
$table->string("client_name");//客户名称
$table->integer('n_id');//关联编号ID
$table->timestamps();
});
}
2022_08_29_073429_create_nums_table.php中新增:
然后执行迁移命令:php artisan migrate
查看数据库,可以看到这两个表已经生成:
添加数据:
接下来我们新建两个模型:
执行命令:
php artisan make:model Clients
php artisan make:model Nums
可以看到两个模型文件已经生成。
需要对这两个模型进行进一步设计代码:
protected $table = "clients";
public $timestamp = false;
//一对一的关系
public function num(){
return $this->hasOne('App\Models\Nums','id','n_id');
}
public function test1(){
$list = $this->get();
foreach($list as $val){
echo $val->id."<br/>".$val->client_name."<br/>"."对应编号:".$val->num->num_name."<br/>";
}
}
新建控制器ClientController
php artisan make:controller ClientController
然后在控制器中添加:
//一对一模型关系
public function oneToOne(){
$client = new Clients();
$list = $client->test1();
dd($list);
}
在路由文件web.php中添加
//一对一模型关系演示
Route::any('one-to-one',[ClientController::class,'oneToOne']);
用浏览器打开进行验证http://127.0.0.1:8000/one-to-one,可以看到以下效果:
说明一对一模型是成功的,这一节就介绍到这里,下一节将介绍一对多的关系。
猜你喜欢
- 2025-05-07 自定义代码生成器(上)(自动代码生成器下载)
- 2025-05-07 MySQL中的存储过程和函数(mysql存储过程与函数)
- 2025-05-07 Instagram架构的分片和ID的设计(ins的分类)
- 2025-05-07 对PostgreSQL中权限的理解(初学者必读)
- 2025-05-07 一文看懂MySQL如何判断InnoDB表是独立表空间还是共享表空间
- 2025-05-07 ArcGIS Pro遥感影像的监督分类(arcgis遥感影像处理教程)
- 2025-05-07 MySQL学到什么程度?才有可以在简历上写精通
- 2025-05-07 大数据时代:Apache Phoenix 的优雅操作实践
- 2025-05-07 go语言database/sql标准库(go语言gui库)
- 2025-05-07 centos7系统下postgresql15离线安装,卸载
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)