4

有没有办法在资源的索引上显示 Laravel\Nova\Fields\Textarea 的前 25 个字符?

4

4 回答 4

8

只是为了扩展上面的答案,这是我正在使用的函数,它仅在切断某些内容时使用省略号:

Text::make('Description')->rules('max:255')->displayUsing(function ($text) {
    if (strlen($text) > 30) {
        return substr($text, 0, 30) . '...';
    }
    return $text;
})
于 2019-03-25T16:32:06.850 回答
6

我们遇到了同样的问题,我们这样解决了

Text::make('Text *', 'text')
            ->rules('required')
            ->hideFromIndex(),

Text::make('Text','text')
    ->displayUsing(function($id) {
        $part = strip_tags(substr($id, 0, 25));
        return $part . " ...";
    })->onlyOnIndex(),

希望这可以帮助。

于 2018-11-13T08:41:08.923 回答
1

为了好玩,我创建了一个名为ellipsis-textarea的 nova 包,您可以使用它。

安装 -composer require saumini/ellipsis-textarea

用法 -

use Saumini\EllipsisTextarea\EllipsisTextarea;

public function fields(Request $request)
{
    return [
        EllipsisTextarea::make('Copy')
          ->displayLength(25),
    ];
}
于 2018-11-14T05:29:10.203 回答
0

这是我最终完成此任务的两种不同方式,而无需使用 Macolson 和 ndee 的答案添加额外的作曲家要求:

use Illuminate\Support\Str;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Fields\BelongsTo;

 public function fields(Request $request)
    {
        return [
            ID::make(__('ID'), 'id')->sortable(),

            Text::make('Label')
                ->sortable()
                ->rules('required', 'max:255')
                ->displayUsing(function($text) {
                    return Str::limit($text, 30);}),

            BelongsTo::make('Survey Field', 'field', \App\Nova\SurveyField::class)
                // ->hideFromIndex()
                ->rules('required')
                ->displayUsing(function($object) {
                    $text = $object->title;
                    return Str::limit($text, 30);}),
        ];
    }
于 2020-10-26T23:24:58.807 回答