お世話になります。
質問内容
子が多 親が一の関係
子テーブルのデータが紐づいている親テーブルのデータを一回ずつ取得したい。
現状
子テーブルのデータの数だけ親が取得されてしまう。(親が重複して取得される)
此方がコードです。
Model public function getAllAnimal($animal_id) { return $this->where('animals.id', $animal_id) ->join('cats', 'animals.id', '=','animal_id') ->select('animals.*', 'cats.updated_at') ->orderBy('cats.updated_at', 'DESC')->get(); }
今は暫定で->get()にしています。
やっている事は
ここ見ながら
https://readouble.com/laravel/7.x/ja/eloquent.html
もっとwhereで条件を絞るのか
質問の条件に合うヘルパーメソッドを探しています。
よろしくお願いします。
animal table <?php class CreateAnimalsTable extends Migration { public function up() { Schema::create('animals', function (Blueprint $table) { $table->increments('id'); $table->string('animal_image')->comment('画像'); $table->string('name'); $table->string('kinds'); $table->timestamps(); }); } public function down() { Schema::dropIfExists('animals'); } }
cats table <?php class CreateCatsTable extends Migration { public function up() { Schema::create('cats', function (Blueprint $table) { $table->increments('id'); $table->unsignedInteger('user_id')->unsigned()->comment('ユーザーID'); $table->unsignedInteger('animal_id'); $table->string('cats_image')->comment('画像'); $table->string('cats_name'); $table->timestamps(); $table->index('id'); $table->index('user_id'); $table->index('animal_id'); $table->foreign('user_id')->references('id')->on('users')->onDelete('set null')->onUpdate('cascade'); $table->foreign('animal_id')->references('id')->on('animals'); }); } public function down() { Schema::dropIfExists('cats'); } }
回答1件
あなたの回答
tips
プレビュー