Laravel检查请求是否已收集

Laravel检查请求是否已收集,laravel,laravel-5,Laravel,Laravel 5,我想对每个已发布的请求运行if语句,如果有任何请求是一个集合,则执行不同的操作 当我死的时候dump$request->all我有一个如下的数组 "_token" => "MMRFBAgyThsIHzITzT26Qwdp4L6HDV0JTPGs6h" "page_name" => "Travel" "heading" => "Travel Europe" "textarea" => "Lorem ipsum dolor sit amet, consecte

我想对每个已发布的请求运行if语句,如果有任何请求是一个集合,则执行不同的操作

当我死的时候dump
$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语句永远不会为true,页面只返回

属性输入提交示例-

@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
@if($comp\u attr['data\u type']=='file')
横幅图像
{{$banner}}
@否则
{{$comp_attr['label']}
@恩迪夫

我相信您正在尝试获取
$\u文件

因此,您可以使用

$request->allFiles();
这将返回请求中的所有文件。然后您可以对其执行任何操作


希望这有帮助

我相信您正在尝试获取
$\u文件

因此,您可以使用

$request->allFiles();
这将返回请求中的所有文件。然后您可以对其执行任何操作

希望这有帮助,而不是

name=“attribute{{$comp\u attr['id']}”

试一试

name=“attributes[{{$comp_attr['id']}}]”

注意新的's'^,以及
{{}

通过使用括号,我们将其转换为关联数组,由blade变量设置关键帧

然后在php端,您可以执行以下操作:

foreach($request->get('attributes') as $i => $value)
{
     ...
}
而不是

name=“attribute{{$comp\u attr['id']}”

试一试

name=“attributes[{{$comp_attr['id']}}]”

注意新的's'^,以及
{{}

通过使用括号,我们将其转换为关联数组,由blade变量设置关键帧

然后在php端,您可以执行以下操作:

foreach($request->get('attributes') as $i => $value)
{
     ...
}

您还可以粘贴前端表单的一个片段以及处理向服务器发布的代码吗?表单太大,无法发布,但我可以向您展示如何发布属性的示例。更新了original post.Sweet,我添加了一个答案,该答案应该适合从添加的示例派生的用例:)它不会是UploadedFile的实例,除非您在字段上调用
$request->file('field\u name')
函数。与的实例相比,一种更简单的方法可能是
$request->hasFile('field_name')
您是否也可以粘贴前端表单的一段代码以及处理向服务器发布的代码?表单太大,无法发布,但我可以向您展示一个如何发布属性的示例。更新了original post.Sweet,我添加了一个答案,该答案应该适合从添加的示例派生的用例:)它不会是UploadedFile的实例,除非您在字段上调用
$request->file('field\u name')
函数。与的实例相比,比较简单的方法可能是
$request->hasFile('field_name')
>“数据会不同,所以我不能写任何静态的东西”我的意思是输入名称总是不同的,所以我不能基于输入名称写静态请求。我需要能够告诉如果发布的请求是一个文件。因为我循环了所有的请求,你能做一个不是要跳过的文件吗?>“数据会不同,所以我不能写任何静态的东西”我的意思是输入名称总是不同的,所以我不能基于输入名称写静态请求。我需要能够告诉如果发布的请求是一个文件。因为我循环了所有的请求,你能做一个不是要跳过的文件吗?