На самом деле я не могу ответить на этот вопрос, не имея $ fillable атрибутов Models или без структур таблиц БД. Но я думаю, что в ваших таблицах есть следующие столбцы:
"raitings" -> "id", "description", "creation_at", "updated_at", "dele_at"
"raitingdetails" ->"id", "raiting_id", "value", ...
Как правило, вам необходимо создать отношение OneToMany для этих двух таблиц с внешним ключом. Так что в вашей миграции "raitingdetails" у вас должно быть что-то вроде этого:
$table->unsignedBigInteger('raiting_id')->nullable();
$table->foreign('raiting_id')->references('id')->on('raitings')->onUpdate('cascade')->onDelete('cascade');
Ваши модели верны, но это не просто круто сейчас. Вы можете улучшить их, добавив $заполняемые столбцы и FK отношений (Примечание: если вы используете традиционную концепцию внешнего ключа, такую как «partents.id» -> «childs.partent_id», то вы также можете оставить эту часть).
- Чтобы получить все детали рейтинга 1 рейтинга, вы можете сделать это:
$rating = Rating::find($rating_id);
$rating_details_of_one = $rating->ratingdetails()->get()->toJson();
Если вы хотите иметь подробности рейтинга для всех действий, вы можете добавить Accessor в свою модель рейтинга и добавить его к $, добавляется следующим образом:
protected $appends = [ 'rating_details' ]; public function
public function getRatingDetailsAttribute() {
return $this->ratingdetails;
}
Ив логических частях вы можете получить доступ следующим образом:
$ratings = Rating::find($rating_id); // this will get with their "ratingdetails" relation
Или вы можете прикрепить аксессор на лету без защищенных $ append и получить функцию getRatingDetailsAttribute () следующим образом:
$rating = Rating::find($rating_id);
$rating_details_of_one = $rating->setAppends([ 'rating_details' ])->get()->toJSON();
Если вы хотите иметь некоторые рейтинги с их деталями, вы можете использовать что-то вроде этого:
$rating_details_of_many = Rating::where('description', 'fontawesome')->with('ratingdetails')->get()->toJson();