Laravel belongsTo not working(Laravel 属于不工作)
问题描述
我的应用中有 2 个模型,用户"和'MedicineType'(每个用户属于一个 MedicineType).
I have 2 models in my app, 'User' & 'MedicineType' (each User belongs to one MedicineType).
我使用belongsTo() 和hasMany() 在两个模型之间建立了一对多关系.hasMany() 关系完美运行,但belongTo() 不起作用.有谁知道我哪里出错了?
I made the one-to-many relation between two model using belongsTo() and hasMany(). hasMany() relation works perfectly but belongTo() doesn't work. Does anyone know where did I make a mistake?
User::find(1)->medicine_type [这不返回任何内容]
User::find(1)->medicine_type [this returns nothing]
MedicineType::find(1)->users [返回用户]
MedicineType::find(1)->users [this returns users]
这是模型的代码:
class MedicineType extends Eloquent {
public function users()
{
return $this->hasMany('User');
}
}
class User extends Eloquent {
public function medicine_type()
{
return $this->belongsTo('MedicineType');
}
}
这是我的数据库结构:
users:
id
name
medicine_type_id
medicine_types:
id
name
推荐答案
你的关系不工作的原因不是因为模型中指定的关系,而是因为 User 模型中的方法命名而不是指定外部键.
The reason your relation is not working is not because of the relations specified in the model, but because of the method naming in the User model and not specifying the foreign key.
代替:
public function medicine_type()
{
return $this->belongsTo('MedicineType');
}
使用:
public function medicineType()
{
return $this->belongsTo('MedicineType', 'id');
}
我希望这对你有用;)
一切都在一起:
<?php // app/models/MedicineType.php
class MedicineType extends Eloquent {
// Determines which database table to use
protected $table = 'medicine_types';
public function users()
{
return $this->hasMany('User');
}
}
和:
<?php // app/models/User.php
class User extends Eloquent {
// Determines which database table to use
protected $table = 'users';
public function medicineType()
{
return $this->belongsTo('MedicineType', 'id');
}
}
测试它是否有效:
$user = User::find(1);
return $user->medicineType->name;
这成功返回了相关的medicine_type 的名称.
This successfully returns the related medicine_type's name.
我希望这能帮助你进一步;)
I hope this helps you further ;)
这篇关于Laravel 属于不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Laravel 属于不工作
基础教程推荐
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- HTTP 与 FTP 上传 2021-01-01