Laravel Nova-如何在索引上显示部分textarea文本

时间:2018-11-04 21:51:51

标签: laravel-nova

是否可以在Resource的索引上显示Laravel \ Nova \ Fields \ Textarea的前25个字符?

4 个答案:

答案 0 :(得分:0)

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

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

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

希望这会有所帮助。

答案 1 :(得分:0)

我创建了一个名为ellipsis-textarea的新星包以供娱乐,您可以使用它。

安装-composer require saumini/ellipsis-textarea

用法-

use Saumini\EllipsisTextarea\EllipsisTextarea;

public function fields(Request $request)
{
    return [
        EllipsisTextarea::make('Copy')
          ->displayLength(25),
    ];
}

答案 2 :(得分:0)

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

Text::make('Description')->rules('max:255')->displayUsing(function ($text) {
    if (strlen($text) > 30) {
        return substr($text, 0, 30) . '...';
    }
    return $text;
})

答案 3 :(得分: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);}),
        ];
    }