【发布时间】:2018-05-04 18:44:55
【问题描述】:
我想在我发布的每个请求上运行一个 if 语句,如果有的话是一个集合做一些不同的事情。
当我转储$request->all 时,我有一个看起来像这样的数组;
"_token" => "MMRFBAgyThsIHzITzT26Qwdp4L6HDV0JTPGs6h"
"page_name" => "Travel"
"heading" => "Travel Europe"
"textarea" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostru ▶"
"seo_title" => "travel"
"seo_description" => "travel"
"attribute_1" => "Food"
"attribute_2" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor."
"attribute_3" => "Hotels"
"attribute_6" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor."
"attribute_5" => "Events"
"attribute_4" => "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor."
"attribute_7" => null
"attribute_8" => null
"attribute_9" => UploadedFile {#233 ▶}
数据会有所不同,所以我不能写任何静态的东西,例如$request->input('attribute_9')
这就是我目前处理未知请求属性的方式。
$input = $request->all();
foreach($input as $key=>$value) {
if(strstr($key,'attribute_')) {
$i = str_replace("attribute_", "", $key);
if (!empty($value)) {
if ($value instanceof Illuminate\Http\UploadedFile) {
dd('lets have a collection...');
}
Attribute::where('id', $i)->update(['value' => $value]);
} else{
Attribute::where('id', $i)->update(['value' => '']);
}
}
}
您可以看到我尝试使用instanceOf 检查$value,但没有成功。 if 语句永远不会为真,页面只会返回。
属性输入提交示例 -
@if($comp_attr['data_type'] == 'file')
<div class="form-grp img-form" style="width: {{ $comp_attr['width'] }}%;">
<label>Banner Image</label>
<span class="img-hold">
{{ $banner }}
</span>
<input type="{{ $comp_attr['field_type'] }}" name="attribute_{{ $comp_attr['id'] }}" />
</div>
@else
<div class="form-grp" style="width: {{ $comp_attr['width'] }}%;">
<label>{{ $comp_attr['label'] }}</label>
<input type="{{ $comp_attr['field_type'] }}" name="attribute_{{ $comp_attr['id'] }}" value="{{ $comp_attr['value'] }}" />
</div>
@endif
【问题讨论】:
-
您能否将前端表单的 sn-p 和处理发布到服务器的代码粘贴到服务器上?
-
表单太大,无法发布,但我可以向您展示如何发布属性的示例。更新了原帖。
-
甜蜜,我添加了一个答案,该答案应该适合从添加的示例派生的用例:)
-
它不会是 UploadedFile 的实例,除非您在该字段上调用
$request->file('field_name')函数。比与实例进行比较更简单的方法可能是$request->hasFile('field_name')