我正在为学生排课创建一个应用程序。 在我的应用中,我只想获取ID为1并具有时间表详细信息的学生时间表。
我有3个表:Student_Schedules,Schedule,Schedule_details
表格如下:
学生时间表:id,schedule_id
Schedule_details :ID,schedule_id
时间表:ID
这是数据库查询:
Shape
因为我不擅长laravel雄辩的关系。是否可以使用带有多个内部联接的给定查询的模型方法。 任何帮助表示赞赏:>
答案 0 :(得分:1)
您的问题的答案是,可以使用模型方法。您的表将需要三个Eloquent模型。 它们是Schedule,StudentSchedule,ScheduleDetail。您可以使用以下命令创建它:
php artisan make:model Schedule
php artisan make:model StudentSchedule
php artisan make:model ScheduleDetail
现在在Schedule.php文件中,创建与StudentSchedule,ScheduleDetail模型的关系
public function studentSchedule()
{
return $this->hasMany(StudentSchedule::class, 'schedule_id');
}
public function scheduleDetail()
{
return $this->hasOne(ScheduleDetail::class, 'schedule_id');
}
现在,在StudentSchedule.php文件中,创建与计划模型的关系:
public function schedule()
{
return $this->belongsTo(Schedule::class, 'schedule_id');
}
,然后将查询替换为:
StudentSchedule::with(['schedule' => function ($query) {
$query->with('scheduleDetail');
}])->where('id',1)->first();
这里的a link是为了更好地理解laravel Eloquent模型关系。
希望它会对您有所帮助。
答案 1 :(得分:0)
好,我已经阅读了您的帖子。 laravel雄辩的关系非常重要,这是laravel的另一个功能,因此您可以在每个表或模块中使用数据库模型。答案如下:
示例:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student_Schedules extends Model
{
/**
* Get the phone record associated with the user.
*/
public function Schedules()
{
return $this->hasOne('App\Schedules');
}
}
上述示例意味着您不通过在Schedules
模型对象结果上使用函数Student_Schedules
来联接两个表并使用计划信息
2。然后您可以使用他们的关系模型对象
$schedule = Student_Schedules ::find(1)->Schedules;
更多信息,请联系。谢谢...
答案 2 :(得分:0)
在幼虫中,雄辩的关系在性能和准确性上总是好的。您还必须使用如下关系-
您有三个表-
我假设您有一个学生表,其ID放在学生时间表表中- 我们将拥有雄辩的关系,例如
1)时间表模型
public function studentSchedules(){
return $this->hasMany(StudentSchedule::class,'schedule_id');
}
public function scheduleDetail(){
return $this->hasMany(ScheduleDetails::class,'schedule_id');
}
现在您可以在逻辑中使用这些关系
$schedules = Schedule::all(); /** conditional data must be used always */
foreach($schedules as $key => $schedule){
$schedules[$key]->details = $schedule->scheduleDetail;
$schedules[$key]->studentDetail = $schedule->studentSchedules;
}
,依此类推,您还可以使用其他关系。 Laravel关系具有更优化的查询,因此我们必须首先喜欢laravel雄辩的关系。
我希望它将对您有帮助