【问题标题】:How can I store saved filename in database : laravel?如何将保存的文件名存储在数据库中:laravel?
【发布时间】:2017-04-30 08:02:24
【问题描述】:

我正在尝试存储实际存储在数据库文件夹中的文件名。我将文件保存为其原始名称。一切正常,除了当我尝试将名称存储在数据库中时,存储了一些临时文件名而不是预期的名称。我哪里做错了?

$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 时,它​​给出了正确的名称。

【问题讨论】:

  • 我看到了请求处理代码,但在您的问题中我没有看到数据库处理代码。
  • 你是什么意思?我创建了一个 Student 模型的实例,并尝试在 $student->image 列中插入 $filename。这还不够吗?
  • 您是先创建然后将文件名分配给图像,可能您需要先分配学生属性然后保存
  • @linktohref 感​​谢您的提醒.. 有效.. 谢谢。 :)

标签: php laravel


【解决方案1】:

不要使用 create 方法,因为它会直接保存新模型。 执行以下操作:

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

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

只需单独指定所有字段,然后点击保存方法。姓名和年龄就是例子!

【讨论】:

    【解决方案2】:

    您可以单独设置学生属性,而不是批量分配。

    $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'));
    

    【讨论】:

      【解决方案3】:

      尝试替换下面的行

       $student->image = $filename;
      

      与

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

      【讨论】:

        【解决方案4】:

        要在数据库中存储文件的所有属性,可以使用这个包:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-24
          • 1970-01-01
          • 2020-07-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多