所以我有两个表Animals和Adoptions
动物表包含[animalID,名称,DOB]
收养拥有[id,animalID,userID,已批准]
我需要写一个与两个表中的animalID匹配的语句,并返回批准为0的动物的名称和DOB。
我以前几乎没有使用过mySQL或Laravel的经验,所以我的假设是SQL查询看起来像这样:
SELECT animalName, DOB
FROM animal
INNER JOIN
Adoption ON adoption.animalID = animal.animalID
WHERE
Adoption.approved = 0
目前,我要退还桌子上的所有动物。因此,我需要添加联接并进行检查,以查看采用表中的animalID是否值为0
public function available ()
{
//JOIN ANIMAL AND ADOPTION TABLES
//RETURN ALL ANIMALS WHERE APPROVED = 0
$animalQuery = Animal::all();
return view('/available', array('animals'=>$animalQuery));
}
答案 0 :(得分:1)
public function available ()
{
//JOIN ANIMAL AND ADOPTION TABLES
//RETURN ALL ANIMALS WHERE APPROVED = 0
$animalQuery = Animal::select('animals.id','animals.name', 'animals.DOB')
->join('adoptions', 'adoptions.animalid', '=', 'animals.id')
->where('adoptions.approved', 0)
->get();
return view('/available', array('animals'=>$animalQuery));
}
这是对我有用的答案
答案 1 :(得分:0)
首先,您将需要两个模型。动物模型和收养模型。 Laravel使用模型来访问数据库表。
使用动物模型,您可以创建如下查询:
\App\Animal::with('adoption')->select('name','dob')->get();
然后在动物模型中,您需要在动物和收养之间建立关系:
public function adoption()
{
return $this->hasOne('App\Animal', 'animalID', 'animalID');
}
这将是通过领养信息获得动物的一种方法。
我真的建议您阅读Laravel文档中的关系和口才,并可能阅读一些SQL。
答案 2 :(得分:0)
假设您有一个Adoption
模型,并且在adoption
模型上具有Animal
关系,则可以执行以下操作:
$animals = Animal::select('animalName`, `DOB`)
->with(['adoption' => function($query) {
$query->where('approved', false);
})->get();