Хранить сообщение вместе с идентификатором пользователя, указанным в таблице пользователей в Laravel 6 - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть модель сообщений и пользователей со следующими отношениями: user_id - это внешний ключ в таблице posts, на который ссылается id таблицы users

Модель сообщений

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

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

public function posts () {
  return $this->hasMany(Posts::class, 'user_id', 'id');
}

И PostController с методом хранения:

public function store(Request $request){
 $this->validate($request, [
  'title' => 'required|max:255',
  'desc' => 'required|max:255'
 ]);

 $image = null;
 $files = $request->thumbnail;
 $thumb = time().'.'.$files->getClientOriginalExtension();
 $request->thumbnail->move(public_path('public'),$thumb);
 $image = $thumb;
 $post = Posts::create([
   'title' => $request->title,
   'thumbnail' => $image,
   'user_id' => __________
   'desc' => $request->desc
 ]);
 return $post->toJson();                     }

Учитывая, что я хочу добиться отношения как Пользователь может иметь много сообщений. Итак, как мне получить id из user с помощью отношения между таблицами users и posts для вставки в таблицу сообщений.
Редактировать: в приведенном выше контроллере, как я могу получить значение user_id ??

1 Ответ

0 голосов
/ 23 февраля 2020

это очень просто.

Вы можете получить идентификатор по URL:

localhost:8000/users/{id}

На вашем маршруте [web.php]

Route::get('/users/{id}', 'UserController@show');

Ваш контроллер:

<?php

namespace App\Http\Controllers;


class UserController extends Controller
{
    public function show($id)
    {
        return User::with('posts')->where('id',$id)->get()
    }

Вопрос обновлен, поэтому ответ должен обновляться:

после входа в систему следует использовать следующий код:

Вы получите доступ к аутентифицированному пользователю через фасад Auth:

// Get the currently authenticated user...
$user = Auth::user();

// Get the currently authenticated user's ID...
$id = Auth::id();

Не забывайте пространство имен

use Illuminate\Support\Facades\Auth;
...