在laravel项目中,我有一个清单和一个药品表,其格式如下:
库存表
id | medicine_id | expiry_date
-------|-----------------|-------------
1 | 1 | 13-11-2021
2 | 2 | 01-01-2020
3 | 2 | 23-05-2024
药物表
id | name | category
-------|-----------------|-------------
1 | Hemophine | Syringe
2 | andrenalin | Tablet
3 | aspirin | Capsule
模型设置如下:
库存模型
class Inventory extends Model
{
public $incrementing = false;
public function medicine(){
return $this->belongsTo('App\Medicine', 'medicine_id');
}
}
医学模型
class Medicine extends Model
{
public $incrementing = false;
public function inventory(){
return $this->hasMany('App\Inventory', 'medicine_id');
}
}
为了检索具有特定类别(如注射器)的所有清单,我尝试了快速加载,但无法找出缺陷。这是我为所有具有“注射器”类别的清单所做的工作,但是没有用。
public function index()
{
$medicines = Inventory::where('medicine_id'->category, "Syringe")->get();
foreach($medicines as $medicine){
echo $medicine->medicine->name ." ".$medicine->expiry_date;
echo "<br>";
}
}
现在,是否总能根据它们所在的类别来获取所有库存项目?在这种情况下属于“注射器”类别?
答案 0 :(得分:3)
您的语法有点错误,为了为每个库存装载药品,您需要使用user=>
,而leiningen
函数是with
因此,将其更改为:
where
或者甚至更好:
where('column', value)