Мне бы хорошо бы чтобы индекс фиксировал магазин, но получается что когда в запросе делаешь indexby то туда попадает всего лишь одна запись у данного магазина и это последняя, но как сделать так чтобы было по другому и туда попадали все данные из этого магазина?
Вот запрос который я построил
$query = Shifts::find()->with('shop')->andWhere(['between', 'date', date('Y-m-d', strtotime('last Monday')), date('Y-m-d', strtotime('Sunday'))])->indexBy(['shop.name'])->all();
Получается вот что
public 'query' =>
array (size=1)
'Сибирский тракст' =>
object(app\models\Shifts)[153]
private '_attributes' (yii\db\BaseActiveRecord) =>
array (size=8)
'id' => int 34
'user_id' => int 5
'shop_id' => int 1
'date' => string '2018-03-20' (length=10)
'start_time' => string '08:10:00' (length=8)
'end_time' => string '18:15:00' (length=8)
'created_at' => string '2018-03-23 10:25:13' (length=19)
'updated_at' => string '2018-03-23 10:25:13' (length=19)
Сейчас примерную модель чего я хочу получить для даглядности
query => [
'Сибирский тракт' => [
[
'id' => int 34
'user_id' => int 5
'shop_id' => int 1
'date' => string '2018-03-20' (length=10)
'start_time' => string '08:10:00' (length=8)
'end_time' => string '18:15:00' (length=8)
'created_at' => string '2018-03-23 10:25:13' (length=19)
'updated_at' => string '2018-03-23 10:25:13' (length=19)
],
[
'id' => int 35
'user_id' => int 6
'shop_id' => int 1
'date' => string '2018-03-20' (length=10)
'start_time' => string '08:10:00' (length=8)
'end_time' => string '18:15:00' (length=8)
'created_at' => string '2018-03-23 10:25:13' (length=19)
'updated_at' => string '2018-03-23 10:25:13' (length=19)
],
[
'id' => int 36
'user_id' => int 8
'shop_id' => int 1
'date' => string '2018-03-20' (length=10)
'start_time' => string '08:10:00' (length=8)
'end_time' => string '18:15:00' (length=8)
'created_at' => string '2018-03-23 10:25:13' (length=19)
'updated_at' => string '2018-03-23 10:25:13' (length=19)
],
//и тд
]
]