есть таблица с домашними заданиями homeworks
:
id
replay
и таблицы с ответами, которых может быть несколько для одного дз homework_answers
:
id
id_homework
replay
как мне в шаблоне вывести к каждому дз несколько ответов: вот я вывожу список домашних заданий? вот так я только вывожу одно дз
$done = DB::table('homework_answers')
->leftJoin('homeworks', 'homework_answers.id_homework', '=', 'homeworks.id')
->leftJoin('schedules', 'homeworks.id_shedule', '=', 'schedules.id')
->leftJoin('relations', 'schedules.id_relation', '=', 'relations.id')
->select('homework_answers.answer','homework_answers.basename', 'homework_answers.created_at','homeworks.replay', 'schedules.theme', 'homeworks.file','homeworks.filename', 'homeworks.dateofdelivery')
->where('relations.teacher', $id)
->where('relations.learner', Auth::user()->id)
->where('homeworks.status', 2)->orderBy('homeworks.id', 'asc')->get();
в шаблоне вот так
@foreach($done as $iteme)
<div class="item">
<p class="title">{{ $iteme->theme }}</p>
<div class="data-content">
<div class="left">
<div class="text">{{ $iteme->replay }}</div>
<a href="{{ $iteme->file }}">{{ $iteme->filename }}</a>
</div>
<div class="right all">
<div class="date-block">Дата сдачи: {{ $iteme->created_at }}</div>
<p class="file">{{ $iteme->basename }}</p>
</div>
</div>
</div>
@endforeach
Привет тебе тут поможет отношение - Один ко многим 1) Если у тебя не созданы модели то тебе нужно их создать Homework и HomeworkAnswer
2) Далее добавить в них взаимосвязи
Один ко многим
Отношение «один ко многим» используется для определения отношений, где одна модель владеет некоторым количеством других моделей. Примером отношения «один ко многим» является статья в блоге, которая имеет «много» комментариев. Как и другие отношения Eloquent вы можете смоделировать это отношение таким образом:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Homework extends Model
{
/**
* Получить ответы из домашки.
*/
public function answers()
{
return $this->hasMany('App\HomeworkAnswer');
}
}
Eloquent автоматически определяет столбец внешнего ключа в модели Comment. По соглашению, Eloquent возьмёт «snake case» названия владеющей модели плюс _id. Таким образом, для данного примера, Eloquent предполагает, что внешним ключом для модели HomeworkAnswer будет homework_id.
После определения отношения мы можем получить доступ к коллекции ответов, обратившись к свойству answers. Помните, что поскольку Eloquent поддерживает «динамические свойства», мы можем обращаться к функциям отношений, как если бы они были определены свойством модели:
$answers = App\Homework::find(1)->answers;
foreach ($answers as $answer) {
//
}
Так как отношения служат и в качестве конструкторов запросов, можно добавлять дополнительные условия с помощью метода answers():
$answers = App\Homework::find(1)->answers()->where('title', 'foo')->first(); Можно указать внешний и локальный ключи, передав дополнительные параметры в метод hasMany():
return $this->hasMany('App\HomeworkAnswer', 'foreign_key');
return $this->hasMany('App\HomeworkAnswer', 'foreign_key', 'local_key');
Один ко многим (Обратное отношение)
После получения доступа ко всем ответам домашки давай определим отношение, которое позволит ответу получить доступ к его домашке. Чтобы определить обратное отношение hasMany(), давайте определим функцию отношения на дочерней модели, которая вызывает метод belongsTo():
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class HomeworksAnswer extends Model
{
/**
* Получить домашку данного ответа.
*/
public function homework()
{
return $this->belongsTo('App\Homework', 'foreign_key', 'other_key');
}
}
После определения отношений мы можем получить модель Homework для HomeworksAnswer, обратившись к динамическому свойству homework:
$answer = App\HomeworkAnswer::find(1);
echo $answer->homework->title;
таблица связи между преподавателем и учеником и предмет
таблица домашних заданий, которые формирует препод
Ответы ученика на домашнее задание, их может быть несколько
и здесь я вывожу задание и ответы на него в колонке right ответы
@foreach($done as $iteme)
<div class="item">
<p class="title">{{ $iteme->theme }}</p>
<div class="data-content">
<div class="left">
<div class="text">{{ $iteme->replay }}</div>
<a href="{{ $iteme->file }}">{{ $iteme->filename }}</a>
</div>
<div class="right all">
<div class="date-block">Дата сдачи: {{ $iteme->created_at }}</div>
<p class="file">Ответ</p>
<p class="file">Ответ два</p>
</div>
</div>
</div>
@endforeach
Виртуальный выделенный сервер (VDS) становится отличным выбором
Появилась нужда из посредника (middleware) при НЕ прохождении проверки редиректить с определёнными параметрами в контроллерНикогда с IoC ещё не сталкивался...
*Возникшие ошибки: Error parsing XML feed: Not allowed value "THB" for the attribute "id": XML tag "currency"Столбец 37 Строка 9