laravel-nova 如何设置动态长度?

How to set a dynamic length in laravel-nova?

我在 laravel 中使用 Nova 来设计页面,我正在编写一些允许 digits:20 的规则函数。

 Text::make('TrackID','id')->rules('nullable','digits:20' )->sortable()->nullable()->hideFromIndex(),

在更新数据时,如果数字大于它应该会抛出类似 Max 20 digits allowed 的错误,现在我想动态给出长度,如何做到这一点

我正在努力

$length=25;

 Text::make('TrackID','id')->rules('nullable',digits:$this->length )->sortable()->nullable()->hideFromIndex(),

现在错误是Max $this->length allowed,请帮我动态设置长度

  1. 您需要 'digits' 规则来保留一个字符串,所以它仍然应该有引号。

  2. 看起来您将长度设置到一个名为 $length 而不是 $this->length 的变量中,因此您需要同样使用它。

$length=25;

 Text::make('TrackID','id')
->rules('nullable','digits:'.$length)
->sortable()
->nullable()
->hideFromIndex(),

这里有几个重要的概念。我鼓励您学习这些资源,以此作为继续您旅程的好方法:

可变范围 - https://www.php.net/manual/en/language.variables.scope.php

字符串连接 - https://www.php.net/manual/en/language.operators.string.php

还有一种方法可以做同样的事情

->rules('nullable',"digits:.$this->length")

我在本地测试过它工作正常,我希望它能解决你的问题。