Laravel - Получить имена столбцов при стремительной загрузке из модели - PullRequest
3 голосов
/ 01 мая 2019

Как вы получаете имена столбцов, когда в модели указана стремительная загрузка?

Вот пример того, что я пытаюсь сделать, но это не работает. Я не могу выбрать какие-либо столбцы из модели канала.

$query = Transaction::select('id', 'processing_time', 'uniqueId', 'paymentType', 'status', 'channel:uuid');

return $query->take(5)->get();

Однако, если я сделаю это, я получу все от транзакции и канала, так что отношения там и работают.

$query = Transaction::limit(5);

return $query->get();

Модель транзакции

protected $with = ['channel'];

public function channel() {
    return $this->belongsTo(Channel::class, 'entityId', 'uuid');
}

Модель канала

public function transactions() {
    return $this->hasMany('App\Transaction', 'entityId', 'uuid');
}

Ответы [ 3 ]

0 голосов
/ 01 мая 2019

в модели канала добавить выберите как

public function channel() {
    return $this->belongsTo(Channel::class, 'entityId', 'uuid')->select(array('columns name you want to get'));
}
0 голосов
/ 01 мая 2019

В соответствии с документами по загрузке:

When using this feature, you should always include the id column and any relevant foreign key columns

Попробуйте:

$query = Transaction::select('id', etc.., 'channel:id,uuid');

Или

$query = Transaction::select('id', etc..)->with('channel:id,uuid');

0 голосов
/ 01 мая 2019
    $query = Transaction::with(['channels' => function($query){
             $query->select('you', 'colums')
    });

Вы можете использовать Select в ваших отношениях, как это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...