web-dev-qa-db-ja.com

摘み取りによる個別の値

私はデータベースからデータを取得してそれらをhtml選択タグにバインドしようとしています。それらをバインドするには、FORMのために、配列に表示するフィールド(key => value)を取得するために、pluckを使用する必要があります。 :選択する。通常のpluckはすべての結果を取得しますが、個別に使用したいと思います。私のモデルは部屋で、次のようになります。

    class Room extends Eloquent
{
    public $timestamps = false;

    protected $casts = [
        'price' => 'float',
        'floor' => 'int',
        'size' => 'float'
    ];

    protected $fillable = [
        'capacity',
        'description',
        'price',
        'floor',
        'size',
        'type',
        'photo_name'
    ];
}

コントローラで使用している関数は次のようになります。

public function getRooms()
    {
        $roomType = Room::pluck('type','type');
        $roomFloor = Room::pluck('floor','floor');

        return view('roomgrid')->with('type',$roomType)->with('floor',$roomFloor);
    }

そして、私のビューには、床を取得するための次のコードが含まれています。

{{FORM::select('floor', $floor, null,['class'=>'basic'])}}

このように、重複したフロアを取得します。異なるフロアを取得してそれらを引き抜く方法はありますか?前もって感謝します。

14
Arlind Hajdari

2019アップデート

pluck()で2つの引数を使用する必要はありません

単に行う:

$roomType = Room::groupBy('type')->pluck('type');

もちろんそれを配列に入れるために:

$roomType = Room::groupBy('type')->pluck('type')->toArray();

whereIn句の結果を使用することもあります。

1
Learner

個別 トリックを実行できます:

Room::query()->distinct()->pluck('type');

これは次のSQLに変換されます。

SELECT DISTINCT type FROM rooms
1
vbarbarosh