основываясь на ответе vivek_23 и после серфинга в интернете, я нашел решение этой проблемы.
мы не можем добавить дополнительные поля в метод правил, нам нужно добавить их в конструктор.
вот мой окончательный код.
<?php
namespace App\Containers\Package\UI\API\Requests;
use App\Ship\Parents\Requests\Request;
use Auth;
/**
* Class CreatePackageServiceRequest.
*/
class CreatePackageServiceRequest extends Request
{
/**
* The assigned Transporter for this Request
*
* @var string
*/
// protected $transporter = \App\Ship\Transporters\DataTransporter::class;
/**
* Define which Roles and/or Permissions has access to this request.
*
* @var array
*/
protected $access = [
'permissions' => '',
'roles' => '',
];
/**
* Id's that needs decoding before applying the validation rules.
*
* @var array
*/
protected $decode = [
// 'id',
];
/**
* Defining the URL parameters (e.g, `/user/{id}`) allows applying
* validation rules on them and allows accessing them like request data.
*
* @var array
*/
protected $urlParameters = [
// 'id',
];
public function __construct(\Illuminate\Http\Request $request)
{
$request->request->add([
'user_id' => Auth::user()->id,
'vendor_id' => Auth::user()->ownedVendor->id
]);
}
/**
* @return array
*/
public function rules()
{
// $this->merge([
// 'user_id' => Auth::user()->id,
// 'vendor_id' => Auth::user()->ownedVendor->id
// ]);
// dd($this->all());
return [
'name' => 'required|max:255',
'has_limited_number_of_event' => 'required',
'min_length' => 'required|numeric',
'max_length' => 'required|numeric|min:'.($this->get('min_length') + 1),
'max_booking' => 'required',
'message_on_booking_full' => 'required',
'allow_choose_host' => 'required',
'allow_skip' => 'required',
'host_name' => 'required',
'allow_extra_booking' => 'required',
'message_no_host_available' => 'required',
'has_photobooth_operator' => 'required',
'require_photobooth_background' => 'required',
'require_customization' => 'required',
'customization_title' => 'required',
'customization_label' => 'required',
'user_id' => 'required',
'vendor_id' => 'required',
// '{user-input}' => 'required|max:255',
];
}
/**
* @return bool
*/
public function authorize()
{
return $this->check([
'hasAccess',
]);
}
}
спасибо.
Комментарий «немного быстрее» точен в том, что нужно сделать чуть меньше бухгалтерии, но акцент делается на «немного», а не «быстрее». Обычно, материал, соответствующий \ (pattern \)
, должен быть сохранен, чтобы вы могли использовать \ 3
(для соответствующего номера), чтобы ссылаться на него в замене. Обозначение %
означает, что vim
не должен следить за совпадением - поэтому он выполняет немного меньше работы.
@SimpleQuestions спрашивает:
Что вы имеется в виду под "следить за матчем"? Как это влияет на скорость?
Вы можете использовать экранированные скобки, чтобы «захватить» части сопоставленного шаблона. Например, предположим, что мы \ 1
и \ 2
в тексте замены относятся к захваченным частям регулярного выражения - имени функции (последовательности буквенно-цифровых символов, начинающихся с буквенного символа - считая подчеркивание как ' alphabetic ') и список аргументов функции (все в скобках, но не в скобках).
Если бы я использовал нотацию \% (.... \)
вокруг идентификатора функции тогда \ 1
будет ссылаться на список аргументов, и не будет \ 2
. Поскольку vim
не должен был бы отслеживать одну из двух захваченных частей регулярного выражения, у него чуть меньше бухгалтерии, чем если бы он должен был отслеживать две захваченные части. Но, как я уже сказал, разница крошечная; Вы, вероятно, никогда не сможете измерить это на практике. Вот почему в руководстве написано «это позволяет больше групп»; если вам нужно сгруппировать части вашего регулярного выражения, но вам не нужно снова обращаться к ним, тогда вы можете работать с более длинными регулярными выражениями. Однако к тому времени, когда у вас есть более 9 запомненных (захваченных) частей регулярного выражения, ваш мозг, как правило, выполняет вращательные движения, и ваши пальцы все равно будут ошибаться - поэтому усилия обычно не стоят того. Но это, я думаю, аргумент для использования нотации \% (... \)
. Он соответствует нотации Perl (PCRE) ' (?: ...)
' для не захватывающего регулярного выражения.
\% (... \)
. Он соответствует нотации Perl (PCRE) ' (?: ...)
' для не захватывающего регулярного выражения. к тому времени, когда у вас есть более 9 запомненных (захваченных) частей регулярного выражения, ваш мозг обычно делает круговые движения, и ваши пальцы все равно будут ошибаться - поэтому усилия обычно не стоят того. Но это, я думаю, аргумент для использования нотации \% (... \)
. Он соответствует нотации Perl (PCRE) ' (?: ...)
' для не захватывающего регулярного выражения. Я спросил в #Vim, быстрее ли другой из-за возврата. Пользователь godlygeek ответил:
Нет, это быстрее, потому что сопоставляемая вещь не нуждается в strdup'ed - любая ненужная работа - плохая вещь для файла синтаксиса.
Он продолжение:
[Скорость] зависит от того, насколько велика Строка Для 3 персонажей это не имеет большого значения, для 3000 это вероятно делает. И имейте в виду, что это должно быть strdup'ed каждый раз, когда это спички .... в том числе во время возвращение назад ... что означает, что даже 3 символа могут быть strdup'ed 1000 раз за совпадение один регулярное выражение. - файлы синтаксиса находятся в $ VIMRUNTIME / синтаксис