実現したいこと
Laravelの画面上でファイルをダウンロードしたユーザーや日時などをDBへ登録したい。
configにに記述されているファイルIDやダウンロードしたユーザーの情報を取得する必要があるのですが、取得方法が分からず躓いています。
現在の状況
エラーは出ないですが、DBのテーブルにデータが登録されることもない状況です。
動作としては画面上のダウンロードボタンが押された際に、ダウンロードを行ったユーザーID、ファイルID、ダウンロード日時がDBのダウンロードテーブルへ登録される動作を想定しています。
コントローラーでファイルIDやユーザーIDが取得できていない事が問題の一つではないかと考えています。
各ファイルの記述
Migration
1public function up() 2{ 3 Schema::create('download', function(Blueprint $table){ 4 $table->id('dl_id'); 5 $table->unsignedInteger('user_id')->nullable; 6 $table->unsignedInteger('file_id')->nullable; 7 $table->datetime('dl_date')->nullable; 8 $table->timestamp('created_at')->nullable(); 9 }); 10}
Route
1Route::get('download', [DownloadController::class, 'download'])->name('download');
Model
1protected $fillable = [ 2 'dl_id', // dlはダウンロードの略 3 'user_id', 4 'file_id', 5 'dl_date', 6 'created_at', 7];
Config
1<?php 2 3return [ 4 'group' => [ 5 'team' => [ 6 [ 7 'id' => 0, 8 'file' => 'ファイルA';, 9 ], 10 [ 11 'id' => 1, 12 'file' => 'ファイルB', 13 ], 14 ], 15 ], 16];
Controller
1public function download(Request $request) 2{ 3 $file = config('download. ' . $request->get('key')); 4 5 $dl = new Download(); 6 $dl->staff_id = auth()->id(); // ログインしているユーザーIDから取得したい 7 $dl->file_id = ; // configのidから取得したい 8 $dl->dl_date = now(); // ダウンロード日時を取得したい 9 $dl->save(); 10}
バージョン
Laravelは最新バージョン8x.です。
回答1件
あなたの回答
tips
プレビュー