gpt4 book ai didi

php - hasmany 表中的 Laravel Dropzonejs 文件验证

转载 作者:行者123 更新时间:2023-11-29 22:23:32 25 4
gpt4 key购买 nike

我有一个可以上传文件的 Laravel 应用程序。我需要检查相关表是否存在该文件。我的用户模型有很多( Assets ) 文件信息位于 Assets 表中。我正在尝试从表中提取该名称,并根据 dropzone 中上传的文件进行验证。

这是我的拖放区脚本:

Dropzone.options.dropzoneUpload = {
paramName: "asset", // The name that will be used to transfer the file
maxFilesize: 2, // MB
accept: function(file, done) {
if (file.name == "{{$filename}}") {
done("Naha, you don't.");
}
else { done(); }
}
};

为我的上传页面生成 View 的函数如下所示

public function index()
{
$filename = Auth::user()->assets->name;
return view('upload.index')->with('filename', $filename);
}

我收到文件名变量中的名称返回的错误

Undefined property: Illuminate\Database\Eloquent\Collection::$name

我不知道如何从表中访问文件名并使用 View 中的脚本验证它。每个用户在表中都有多个文件名。

在拖放区之前,我能够在我的 Controller 中使用它

foreach($userAssets as $asset)
{
if($asset->name == $filename)
{
return redirect('upload')->with('errornotice', 'A file with that name already exist');
}
}

但这在脚本中不起作用。

最佳答案

既然您自己说过您的User hasMany Assets,那么assets->name到底应该打印什么?哪个 Assets 名称?由于您有很多这样的资源,并且 user->asset 返回一个 Collection,因此您可以迭代该集合,从所有 Asset name 中构造一个 JSON 数组并将其注入(inject)进入你的JS。然后执行 JavaScript for/each 来检查数组的所有元素。但这是弱验证,任何用户都可以在提交之前编辑 JS。如果文件名尚不存在对您来说很重要,请考虑某种服务器端验证。

关于php - hasmany 表中的 Laravel Dropzonejs 文件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com