Возврат отношения / поворота модели в методе после создания в Laravel Eloquent

Как я могу вернуть модель с его отношением / опорой в методе после firstOrNew?

Модель:

класс Клиент расширяет модель { protected $ table = 'клиенты';

protected $primaryKey = 'customer_id';

public $timestamps = true;


protected $fillable = [
    'email',
    'first_name',
    'last_name',
    'address',
    'city',
    'county',
    'country',
    'phone',
    'organization_id',
    'unique_value'
  ];

protected $guarded = [];

public function locations()
{
    return $this->belongsToMany('App\Models\CustomerLocations', 'customer_customer_locations', 'customer_id', 'address_id')->withTimestamps();
}

}

Метод:

$customer = Customer::firstOrNew(['unique_value' => $unique_code]);

Сделайте немного логики ... а также

return $customer;

Как вернуть $customer с locations() ?? Я тоже сделаю firstOrNew для локаций.

если вы хотите, чтобы он был постоянно, добавьте эту строку к вашей модели Customer : protected $with = ['locations'];, если вы хотите получать его на лету, просто сделайте это: $customer->load('locations') или $customer->with('locations);

Mohamed Kawsara 27.06.2018 15:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
1
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте protected $appends = ['locations']; в своей модели.

protected $primaryKey = 'customer_id';

public $timestamps = true;

protected $appends = ['locations'];



protected $fillable = [
    'email',
    'first_name',
    'last_name',
    'address',
    'city',
    'county',
    'country',
    'phone',
    'organization_id',
    'unique_value'
  ];

protected $guarded = [];

public function locations()
{
    return $this->belongsToMany('App\Models\CustomerLocations', 'customer_customer_locations', 'customer_id', 'address_id')->withTimestamps();
}

Или вы используете return $cusotmer->load(['locations'])

Другие вопросы по теме