Метод Illuminate \ Database \ Query \ Builder :: profilesInfoModel не существует. // RegisterController.php

мне нужно сохранить некоторые данные помимо создания пользователя, вот что я пытался сделать в моем RegisterController.php:

protected function create(array $data)
{
    if (isset($data['checkbox'])) {
        $type = 1;
        $available = 1;
    } else {
        $type = 0;
        $available = 0;
    }

     $user =  User::create([
        'name' => $data['name'],
        'username' => $data['username'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'type' => $type,
        'available' => $available,
        'company' => $data['company'],
        'job' => $data['job'],
    ]);

    $user->profilesInfoModel()->create([
        'bio' => $data['bio'],
        'site' => $data['site'],
        'location' => $data['location'],
        'education' => $data['education'],
    ]);

    return $user->with('profilesInfoModel');


}

User.php (Model) имеет отношение one to one с profilesInfoModel (да, я знаю, что мне следует изменить имя модели, чтобы сделать ее более удобной).

Но после попытки зарегистрировать пользователя ... я получаю это сообщение об ошибке: Method Illuminate\Database\Query\Builder::profilesInfoModel does not exist.

Что на самом деле происходит?

Можете ли вы добавить код своей модели как для профиля модели, так и для пользователя

Salman Zafar 03.08.2018 05:32
Стоит ли изучать 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-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
1
928
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Отношения должны быть такими

Модель пользователя

public function profile()
{
    return $this->hasOne(ProfileInfo::class, 'user_id');
}

Предполагая, что у вас есть ProfileInfo в качестве модели профиля, и у него есть user_id в качестве ссылок внешнего ключа. Таблица users Поле id

Теперь вы можете создать профиль из $user вот так

$user->profile()->create([
    'bio' => $data['bio'],
    'site' => $data['site'],
    'location' => $data['location'],
    'education' => $data['education'],
]);

$user->load('profile'); //lazy eager load

return $user;

1. в приложении \ Модель \ Пользователь

public function profilesInfoModel()
{
    return $this->hasOne(App\Model\User);
}

2. вызвать

use App\Model\User

в RegisterController

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