我遇到了一个需要更改需要验证的数据的实例,即当没有提交slug时,从标题创建一个然后验证它是唯一的.
请求有一个方法replace(),它应该替换请求中的输入数据,但它似乎不起作用.任何人都可以对此发光吗?这就是我所拥有的:
<?php namespace Purposemedia\Pages\Http\Requests;
use Dashboard\Http\Requests\Request;
use Illuminate\Auth\Guard;
class PageRequest extends Request {
/**
* [authorize description]
* @return {[type]} [description]
*/
public function authorize( Guard $auth) {
return true;
}
/**
* [rules description]
* @return {[type]} [description]
*/
public function rules() {
// Get all data from request
$data = $this->request->all();
if( $data['slug'] === '' ) {
// if the slug is blank, create one from title data
$data['slug'] = str_slug( $data['title'], '-' );
// …Run Code Online (Sandbox Code Playgroud) request laravel laravel-5 laravel-validation laravel-request
我正在Laravel 5.0中编写单元测试,在我的请求类中,我使用不同的包来显示验证错误消息.
我在我的文件中使用它:
/* ExampleRequest.php */
namespace App\Http\Requests;
use App\Http\Requests\Request;
use Illuminate\Support\Facades\Auth;
class ExampleRequest extends Request {
protected $errorBag = 'otherbag';
public function rules(){
return [
'my_field' => 'required'
];
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试文件中,我正在测试使用它:
/* ExampleTest.php */
class ExampleTest extends TestCase {
public function testPostWithoutData(){
$response = $this->call('POST', 'url/to/post',[
'my_field' => ''
]);
$this->assertSessionHasErrors('my_field');
}
}
Run Code Online (Sandbox Code Playgroud)
如果我运行测试,它无法获得正确的断言并返回此问题:
会议缺少错误:
my_field未能声称false是true.
如果我$errorBag从请求文件中取出属性,我没有问题.
我可以根据需要提供更多细节.
php unit-testing laravel-5 laravel-validation laravel-request
我想在中间件中使用模型执行某些操作.这是我想要实现的一个例子:
public function handle($request, Closure $next)
{
$itemId = $request->param('item'); // <-- invalid code, serves for illustration purposes only
$item = Item::find($itemId);
if($item->isBad()) return redirect(route('dont_worry'));
return $next($request);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何从中检索所需的参数$request?
我开始使用 Laravel,我想知道我应该如何选择一个。
从 5.0 版开始,Laravel 文档将请求示例从 更改Request::get('form_input')为$request->get('form_input'),但我找不到任何关于他们为什么这样做的解释。
我的疑问是:
Requests吗?我在同一页面上有三种不同的表格。所有输入都有自己的验证规则,请求文件中的代码具有如下结构:
public function rules()
{
return [
//
'sold' => 'required',
'unit_in_stock' => 'required',
'unit_price_gbp' => 'required',
'returned_item' => 'required',
];
}
public function messages()
{
return [
'sold.required' => 'Please enter quantity of sold parts',
'unit_in_stock.required' => 'Please enter quantity of sold parts',
'unit_price_gbp.required' => 'Please enter price in GBP',
'returned_item.required' => 'Please enter quantity of items',
];
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试提交三个表单之一时,另一个表单返回有关空字段的消息。这种形式彼此不相关。
这是我的表格:
{!! Form::open(['url' => route('addDelivery.addDelivery'),'class'=>'contact-form','method'=>'POST']) !!}
<label>Price in GBP £:</label>
{!! Form::text('unit_price_gbp', isset($price->unit_price_gbp) ? $price->unit_price_gbp : old('unit_price_gbp'), array('class'=>'form-control'), …Run Code Online (Sandbox Code Playgroud) laravel laravel-5 laravel-validation laravel-form laravel-request
我正在使用 laravel 5.6 resources controllers,form request问题是我有一些已required创建的输入,但在编辑时是可选的,例如文件输入。所以我有这个表格请求
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ProgramRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
'name.*' => 'required',
'description.*' => 'required',
'logo' => 'required|image|max:3000',
'logo_alt' => 'required|image|max:3000' …Run Code Online (Sandbox Code Playgroud) laravel laravel-5 laravel-validation laravel-request laravel-5.6
我创建了一个ClientStoreRequest使用以下代码命名的自定义表单请求:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ClientStoreRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
// return $this->user()->can('add-clients');
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|unique:clients|max:255',
'website' => 'required|url',
'street' => 'required',
'town' => 'required',
'postcode' => 'required|max:8',
'county' => 'required', …Run Code Online (Sandbox Code Playgroud) 我创建了一个自定义请求来进行自己的验证。当我关注这些文章时。
我创建了ProfileRequest
php artisan make:request ProfileRequest
Run Code Online (Sandbox Code Playgroud)
在我的个人资料请求中
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ProfileRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|min:10',
'age' => 'required|numeric'
];
}
}
Run Code Online (Sandbox Code Playgroud)
我在两个选项卡上有两个表单,我的问题是当我选择第二个选项卡并发送我的表单时,如果有一些错误,它会将我重定向回来,但在选项卡一而不是选项卡二上,所以我创建了一个变量来控制哪个选项卡应该在负载上显示:
刀片文件:
<div class="tab-content" id="pills-tabContent">
<div class="tab-pane fade {{ $tabName == 'yes' ? 'show active' : '' }}" id="pills-yes" role="tabpanel" aria-labelledby="pills-yes-tab">
@include('secciones.formulario-contacto-reserva')
</div>
<div class="tab-pane fade {{ $tabName == 'no' ? 'show active' : '' }}" id="pills-no" role="tabpanel" aria-labelledby="pills-no-tab">
@include('secciones.formulario-contacto-sin-reserva')
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
当自定义请求中验证失败时,我尝试将参数发送到我的视图:
ContactWithoutBookingRequest.php
<?php
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Validation\ValidationException;
use Illuminate\Foundation\Http\FormRequest;
class ContactWithoutBookingRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return …Run Code Online (Sandbox Code Playgroud) laravel-request ×10
laravel ×9
laravel-5 ×8
php ×6
laravel-5.6 ×1
laravel-5.7 ×1
laravel-5.8 ×1
laravel-form ×1
request ×1
unit-testing ×1