Как вернуть одно свойство модели ownTo с дочерней моделью в контроллере ресурсов Laravel

Я использую Laravel в качестве REST API для SPA. У меня есть отношения, где семьи имеют несколько вкладов. В таблице вкладов есть ссылка внешнего ключа на идентификатор семьи. Я могу вызвать маршрут вкладов с настройкой hasMany / assignTo, и каждый вклад получает всю модель семейства, к которой принадлежит. Но мне не нужны все эти данные, мне просто нужно одно поле из семейной таблицы (не идентификатор, а другое поле) с каждым вкладом.

Вот мои модели и контроллер ресурсов:

class Family extends Eloquent {

protected $table = 'families';

// relationships
public function contributions() {
return $this->hasMany('Contribution');
}
}

class Contribution extends Eloquent {

protected $table = 'contributions';

// relationships
public function family() {
return $this->belongsTo('Family');
}

public function other_field() {
return $this->belongsTo('Family')->select('other_field');
}
}

class ContributionController extends BaseController {

public function index()
{
// works - but returns the entire family with every contribution
$contributions = Contribution::with('family')->get();

// returns other_field == null with every contribution
$contributions = Contribution::with('other_field')->get();

return Response::json($contributions->toArray(),
200);
}

Где я ошибаюсь при выборе этого единственного поля в отношении принадлежащих к?

0

Решение

Вы можете использовать ограничения запроса на отношения, если вы используете нетерпеливую загрузку.

Family::with(['contributions', function($query)
{
$query->select('column');
}])->get();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]