Я разрабатываю api. У меня есть функция, которая возвращает все модели в базе данных. Я не хочу добавлять к каждой модели этой коллекции связанную модель.
public function index()
{
if (auth()->user()->hasPermission('read-company_requests')) {
$createCompanyRequestments = CreateCompanyRequest::orderBy('status')->get();
} elseif (auth()->user()->hasPermission('read-company_request')) {
$createCompanyRequestments = auth()->user()->companyCreateRequestment()->orderBy('status')->get();
} else {abort(403);}
return $createCompanyRequestments->toJson();
}
Таким образом, каждый CreateCompanyRequest::orderBy('status')->get(); должен иметь в ответе соответствующую модель company. Как я могу это сделать?
да. Это правда. Но я хочу, чтобы каждая модель в $createCompanyRequestments имела соответствующую модель company.
Но какая модель? CreateCompanyRequest::orderBy('status')->get(); просто дает вам collection(); или массив, если хотите. Если вам нужен каждый элемент в этой коллекции, вы можете сделать foreach ($createCompanyRequestments as $item) { dd($item); }.
В том-то и дело, что я застрял. Я хочу выбрать каждую родственную модель. Я слышал, что вы можете использовать соединения, но у меня нет опыта работы с sql. Я знаю, что соответствующей модели нет в этой коллекции, но я хочу включить их, но не знаю, как






Просто используйте жадная загрузка вот так:
CreateCompanyRequest::orderBy('status')->with('company')->get()
Я немного запутался. Модель в laravel MVC обычно является моделью базы данных. Если вам нужна модель компании, вы можете просто
use App\company, а затемcompany::anyPublicStaticFunctionWithinThatModel();