前提・実現したいこと
下記リンクのフォームの送信情報をデータベースに保存する処理内で、$request->user()とありますが、なぜ$requestから独自に定義したuser()を呼び出せるかがわかりません。
Laravel で簡単な掲示板を作る
該当のソースコード
Laravel
public function store(Request $request) { $request->validate([ 'title' => 'required|string|max:255', 'body' => 'required|string|max:512', ]); DB::transaction(function () use ($request) { $thread = $request->user()->threads()->create([ 'title' => $request->title, ]);
Laravel
class Comment extends Model { use HasFactory; protected $fillable = [ 'body', 'user_id' ]; public function user() { return $this->belongsTo(User::class); } }
Laravel
dd($request)の結果 Illuminate\Http\Request {#43 ▼ +attributes: Symfony\Component\HttpFoundation\ParameterBag {#45 ▶} +request: Symfony\Component\HttpFoundation\InputBag {#44 ▶} +query: Symfony\Component\HttpFoundation\InputBag {#51 ▶} +server: Symfony\Component\HttpFoundation\ServerBag {#47 ▶} +files: Symfony\Component\HttpFoundation\FileBag {#48 ▶} +cookies: Symfony\Component\HttpFoundation\InputBag {#46 ▶} +headers: Symfony\Component\HttpFoundation\HeaderBag {#49 ▶} #content: null #languages: null #charsets: null #encodings: null #acceptableContentTypes: null #pathInfo: "/threads/create" #requestUri: "/threads/create" #baseUrl: "" #basePath: null #method: "POST" #format: null #session: Illuminate\Session\Store {#320 ▶} #locale: null #defaultLocale: "en" -preferredFormat: null -isHostValid: true -isForwardedValid: true -isSafeContentPreferred: null #json: null #convertedFiles: [] #userResolver: Closure($guard = null) {#287 ▶} #routeResolver: Closure() {#295 ▶} basePath: "" format: "html" }
補足情報(FW/ツールのバージョンなど)
PHP 8.1.1
Laravel 8.78.1
まだ回答がついていません
会員登録して回答してみよう