laravel - BelongsTo 在 Laravel Nova 中的翻译
问题描述
我用于 Nova 中的翻译字段
Text::make(__('Name User'), 'name')
但我不明白使 BelongsTo 字段的标题可翻译的手册
标题属性 当 BelongsTo 字段显示在资源创建/更新屏幕上时,下拉选择菜单或搜索菜单将显示资源的“标题”。例如,用户资源可以使用名称属性作为其标题。然后,当资源显示在 BelongsTo 选择菜单中时,将显示该属性:
嗯......在我的代码中,这失败了,因为翻译以模型的名称产生,而不是在关系 Ship 的标签中产生。
BelongsTo::make(__('User'), 'users')->withMeta([
'belongsToId' => $this->user_id ?? auth()->user()->id
])->hideFromDetail()
local.ERROR: Class 'App\Nova\Usuario' not found {"userId":1,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Class 'App\\Nova\\Usuario' not found at /home/abkrim/Sites/albaridnova/vendor/laravel/nova/src/Fields/BelongsTo.php:118)
Nova\User 上的代码
public static $model = 'App\\User';
public static $title = 'email';
public static $search = ['id', 'name', 'email'];
public static function availableForNavigation(Request $request)
{
return $request->user()->isAdmin();
}
public static function label()
{
return __('Users');
}
public static function singularLabel()
{
return __('User');
}
当显示用户资源没有问题时。标签翻译完成。
但是如果去资源邮箱,字段 BelongsTo 不显示翻译
解决方案
发生这种情况是因为如果您没有在make
方法中指定第三个参数(资源),Nova 会认为您的资源以与标签相同的方式被调用(例如:标签:User
然后资源名称User
:)并会尝试搜索那个资源类。
显然,您可以通过将资源类作为第三个参数传递来覆盖它:
// Add the import of your resource if its class
// is not in the same directory as this file
BelongsTo::make(__('User'), 'users', User::class)->withMeta([
'belongsToId' => $this->user_id ?? auth()->user()->id
])->hideFromDetail(),
推荐阅读
- opencv - OpenCV 安装卡在 [39%] ;待构建的 OpenCV 模块;
- java - Java中的帕斯卡三角形
- python - Pandas sqlalchemy create_engine 与 SQL Server Windows 身份验证的连接
- mysql - MYSQL 中固定开始日期但动态结束日期
- swift - 如何在 xCode 中以编程方式设置图像
- shell - 在带有变量的循环中使用`cdo`出现“未处理的输入”错误
- node.js - 如何使vue应用程序进行生产
- typescript - Next.js 自定义服务器无法在 Firebase 上运行
- android - 我可以在没有 Android 工作室的情况下为 Android 开发吗?我没有 I3 处理器来做 android 编程
- android - RecyclerView 图像在首次加载时不渲染,仅刷新或滚动