我正在开发Laravel应用程序,它具有一个包含图像上载字段的表单,它也不是必填字段。现在我想做的是,如果有人提交表单而不上传图像,那么默认的随机图像将从public/images/default
目录插入数据库。我如何使用Laravel做到这一点?我有该目录的10张图像(例如:1b.png,2b.png,3b.png ....)
<form method="POST" action="{{ route($base_route.'.eventEdit', ['event_id' => $event->event_code]) }}" accept-charset="UTF-8" id="general_form" novalidate="novalidate">
<input name="name" type="text" value="something" class="name">
<input name="name" type="file" value="DefaultImageName" class="image">
<button class="btn btn-default"> Submit </button>
</form>
答案 0 :(得分:0)
将此代码添加到您的控制器操作中
$images = scandir(public_path('images/default'));
$image = $request->file('DefaultImageName', $images[mt_rand(0, count($images -1))]);
答案 1 :(得分:0)
我不建议将图像存储在数据库中。我通常采用的方法是,在数据库中存储名称,别名和文件路径。
您可以执行此操作,具体取决于您在应用程序上使用的模式,但是对于您的情况,我要做的是创建一个mutator,当某些字段为空时,只要您要插入一条记录,它都会进行验证,它会执行某些操作(如果您使用的是雄辩的话,那么我想)。
public function setImageAttribute($value)
{
if (empty($value)) {
$this->attributes['image'] = //fetch your image and apply your logic
} else {
$this->attributes['image'] = value;
}
}
否则,我将创建一个formrequest来验证某个字段是否为空,然后在其中放置一些内容(这样,当到达插入代码时,它已经包含图像了)