簡體   English   中英

如何將保存的文件名存儲在數據庫中:laravel?

[英]How can I store saved filename in database : laravel?

我正在嘗試存儲文件名,該文件名實際上存儲在數據庫的文件夾中。 我將文件保存為原始名稱。 一切正常,除了當我嘗試將名稱存儲在數據庫中時,存儲了一些臨時文件名而不是預期的名稱。 我哪里做錯了?

$student = new Student();
    $student->create($request->all());
    $gradeId = $request->grade_id;
    $file = $request->file('image');
    $filename = $file->getClientOriginalName();
    $file->storeAs('public', $filename);
    $student->image = $filename;
    return redirect()->route('index', compact('gradeId'));

'C:\\ xampp \\ tmp \\ phpA812.tmp'存儲在數據庫中,但是當我回顯$ filename時,它給出了正確的名稱。

不要使用create方法,因為它將直接保存新模型。 請執行下列操作:

$file = $request->file('image');
$filename = $file->getClientOriginalName();

$student = new Student();
$student->name = $request->name;
$student->age = $request->age;
$student->image = $filename;
$student->save();

只需單獨指定所有字段,然后點擊保存方法即可。 名稱和年齡就是例子!

嘗試替換下面的行

 $student->image = $filename;

  Student::where('id', $student->id)->update(['image' => $filename]);

您可以單獨設置學生屬性,而不是批量分配。

$student = new Student(); 

$student->name = $request->input('name');
// Set other properties

$file = $request->file('image');
$filename = $file->getClientOriginalName(); 
$file->storeAs('public', $filename);

$student->image = $filename;

$student->save();
return redirect()->route('index', compact('gradeId'));

要將文件的所有屬性存儲在數據庫中,可以使用以下程序包:

https://github.com/Saeid-Khaleghi/media-store

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM