Я использую модель листинга для создания правил для проверки и пытаюсь добавить функцию date () к значению для одной из пар ключ / значение массива:
class Listing extends Way\Database\Model {
public $today_date;
public function __construct()
{
$this->today_date = date("n/j/Y");
}
protected $guarded = ['id','created_at','updated_at'];
protected $table = 'listing';
protected static $rules = [
'deposit' => 'required|integer',
'date_available' => 'required|date|after:'.$this->today_date,
];
}
Когда я отправляю форму, я получаю следующее сообщение:
синтаксическая ошибка, неожиданное «$ this» (T_VARIABLE)
Как я могу использовать функцию даты, чтобы добавить ее к значению в массиве?
Вы не можете использовать $this
в статической функции (ваш $rules
статично).
Вы можете просто использовать пользовательскую проверку
protected static $rules = [
'deposit' => 'required|integer',
'date_available' => 'required|date|after_today
];
Тогда в вашем приложении где-то
Validator::extend('after_today', function($attribute, $value, $parameters)
{
return ((strtotime($value)) > (strtotime('now')));
});
Вы не можете использовать $this
инициализировать свойство класса.
Вы можете сделать это в своем конструкторе:
public function __construct()
{
$this->today_date = date("n/j/Y");
self::$rules = [
'deposit' => 'required|integer',
'date_available' => 'required|date|after:' . $this->today_date,
];
}