Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将输入textarea放入数组中?(拉威尔5.3)_Php_Laravel_Routes_Request_Laravel 5.3 - Fatal编程技术网

Php 如何将输入textarea放入数组中?(拉威尔5.3)

Php 如何将输入textarea放入数组中?(拉威尔5.3),php,laravel,routes,request,laravel-5.3,Php,Laravel,Routes,Request,Laravel 5.3,我的观点是这样的: @foreach($reviews as $key => $review) ... <div class="form-group"> {!! Form::open(['route' => 'message.review.update', 'method' => 'post', 'id' => 'reviewform']) !!} <label for="review" class

我的观点是这样的:

@foreach($reviews as $key => $review)
    ...
    <div class="form-group">
        {!! Form::open(['route' => 'message.review.update', 'method' => 'post', 'id' => 'reviewform']) !!}
            <label for="review" class="sr-only">Review</label>
            {!! Form::textarea('review', null, ['class' => 'form-control', 'id' => 'review', 'rows'=>3,'required'=>'required']) !!}
            @if ($errors->has('review'))
                <span class="help-block">
                    <strong>{{ $errors->first('review') }}</strong>
                </span>
            @endif
            {!! Form::hidden('id', $review->_id) !!}
            {!! Form::hidden('store', $review->store_id) !!}
        {!! Form::close() !!}
    </div>
    ...
@endforeach
Route::group(['prefix' => 'message','as'=>'message.'],function(){
    Route::post('review/update', ['as'=>'review.update','uses'=>'ReviewController@update']);
});
public function update(CreateReviewRequest $request)
{       
    $param = $request->only('id', 'review', 'store');
    ...
}
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateReviewRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'review'=>'required|max:300'
        ];
    }
}
要更新的控制器如下所示:

@foreach($reviews as $key => $review)
    ...
    <div class="form-group">
        {!! Form::open(['route' => 'message.review.update', 'method' => 'post', 'id' => 'reviewform']) !!}
            <label for="review" class="sr-only">Review</label>
            {!! Form::textarea('review', null, ['class' => 'form-control', 'id' => 'review', 'rows'=>3,'required'=>'required']) !!}
            @if ($errors->has('review'))
                <span class="help-block">
                    <strong>{{ $errors->first('review') }}</strong>
                </span>
            @endif
            {!! Form::hidden('id', $review->_id) !!}
            {!! Form::hidden('store', $review->store_id) !!}
        {!! Form::close() !!}
    </div>
    ...
@endforeach
Route::group(['prefix' => 'message','as'=>'message.'],function(){
    Route::post('review/update', ['as'=>'review.update','uses'=>'ReviewController@update']);
});
public function update(CreateReviewRequest $request)
{       
    $param = $request->only('id', 'review', 'store');
    ...
}
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateReviewRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'review'=>'required|max:300'
        ];
    }
}
在更新之前,它将调用CreateReviewRequest进行验证

我的CreateReviewRequest如下所示:

@foreach($reviews as $key => $review)
    ...
    <div class="form-group">
        {!! Form::open(['route' => 'message.review.update', 'method' => 'post', 'id' => 'reviewform']) !!}
            <label for="review" class="sr-only">Review</label>
            {!! Form::textarea('review', null, ['class' => 'form-control', 'id' => 'review', 'rows'=>3,'required'=>'required']) !!}
            @if ($errors->has('review'))
                <span class="help-block">
                    <strong>{{ $errors->first('review') }}</strong>
                </span>
            @endif
            {!! Form::hidden('id', $review->_id) !!}
            {!! Form::hidden('store', $review->store_id) !!}
        {!! Form::close() !!}
    </div>
    ...
@endforeach
Route::group(['prefix' => 'message','as'=>'message.'],function(){
    Route::post('review/update', ['as'=>'review.update','uses'=>'ReviewController@update']);
});
public function update(CreateReviewRequest $request)
{       
    $param = $request->only('id', 'review', 'store');
    ...
}
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class CreateReviewRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }
    public function rules()
    {
        return [
            'review'=>'required|max:300'
        ];
    }
}

查看

 {!! Form::textarea('review[]', null, ['class' => 'form-control', 'id' => 'review', 'rows'=>3,'required'=>'required']) !!}


你在这里犯了一些错误。。。在HTML中,ID必须是唯一的。你不能把“评论”作为你所有文本区域的id。。。我的评论即将使用一个数组作为名称,如
name=review[]
,并在ID中动态添加ID末尾的
$key
,以使它们唯一

这将为您提供如下信息:

<textarea name="review[]" class="form-control" id="review0" rows="3" required></textarea>
<textarea name="review[]" class="form-control" id="review1" rows="3" required></textarea>
<textarea name="review[]" class="form-control" id="review2" rows="3" required></textarea>
在您的案例中,类似这样的情况:

{!! Form::open(['route' => 'message.review.update', 'method' => 'post', 'id' => 'reviewform', 'novalidate']) !!}

您是否尝试使用数组作为textarea的名称
name='review[$key]'
@JoDev,如果我运行这个:
dd($request->input($review))
,结果如下:
数组:1[▼   “$key”=>“test”]
如果我有3个数据。第一个数据是有效的。但第二和第三个数据不起作用。存在如下错误:
名称为='review[]'的无效表单控件不可聚焦。
尝试删除验证,如:公共函数更新(请求$Request){…然后进行测试。我更新了答案,可能验证中的错误为“max:300”,字段为数组,而不是单个数据。