Проблемы с функцией запроса laravel - PullRequest
0 голосов
/ 06 октября 2018

Я хотел бы загрузить пользователя, который имеет соответствующий URL в таблице приглашений хранится.К сожалению, я не получил запрос написано.Как я могу переключиться на таблицу «приглашает» и при этом загрузить нужного пользователя на страницу?

Отношение:

Один к одному

Маршрут

 Route::get('/invite/{url}', 'Auth\RegisterController@show')->name('invite.show');

Таблица приглашений:

Schema::create('invites', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned()->nullable();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
            $table->text('greeting')->nullable();
            $table->string('url')->unique();
            $table->timestamps();
        });

функция

public function show($url)
{
    $user = User::where(function ($query) use ($url) {
        $query->where('invites.url', '=', $url);
    })->first();

    return view('invite_user', compact('user'));
}

1 Ответ

0 голосов
/ 06 октября 2018

Попробуйте:

$user = User::whereHas('invites', function($query) use($url) {
    $query->where('url', $url);
})->first();

Убедитесь, что у вас есть invites функция отношения в вашей User модели, например:

public function invites() {
    return $this->hasMany(Invite::class, 'user_id');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...