Laravel один ко многим Отношения: Получить идентификатор для другой таблицы - PullRequest
0 голосов
/ 20 июня 2019

я хотел получить идентификатор из таблицы пользователей для поля user_id в таблице сообщений

я уже пробовал с Auth :: id ();но он получает текущий аутентифицированный идентификатор Id

, поэтому при создании новых данных идентификатор пользователя должен отображаться в поле user_id в таблице сообщений

Это моя модель сообщения:

public function user()
{
    return $this->belongsTo(User::class);
}    

Это моя модель пользователя:

public function posts()
{
    return $this->hasMany(post::class);
}

и вот как я в настоящее время храню свои данные:

$post = new post;
    // $post->parent_id = $request->input('id');
    $post->user_id = Auth::id(); 
    $post->type = $request->input('type');
    $post->slug = str_slug($request->input('title'));
    $post->title = $request->input('title');
    $post->body = $request->input('body');
    $post->excerpt = $request->input('excerpt');
    $post->image = $imageName;
    $post->tag = $request->input('tag');
    $post->metas = $request->input('metas');
    $post->ispublished = $request->input('ispublished');
    $post->published_at = $request->input('published_at');
    $post->save();

как мне точно делать то, что я хочу

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Проверьте ваши маршруты к контроллеру, если у него есть промежуточное ПО.Для получения пользовательских данных через Auth требуется промежуточное программное обеспечение.

Пример

Route::post('/', 'PostController@store')->middleware('auth:users');
0 голосов
/ 20 июня 2019

Ваш вопрос точно не ясен, но вы можете использовать отношение к этой работе как:

$user->post()->create([
    $post->type = $request->input('type');
    $post->slug = str_slug($request->input('title'));
    $post->title = $request->input('title');
    $post->body = $request->input('body');
    $post->excerpt = $request->input('excerpt');
    $post->image = $imageName;
    $post->tag = $request->input('tag');
    $post->metas = $request->input('metas');
    $post->ispublished = $request->input('ispublished');
    $post->published_at = $request->input('published_at');
]);

Это решение не очень хорошо с точки зрения производительности, поскольку использует соединение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...