laravel-nova - Laravel Nova - 如何确定资源计算字段的视图(索引、详细信息、表单)?
问题描述
在查看索引视图时,我想为计算字段返回不同的结果,而不是查看资源的详细视图时。
基本上类似于下面的 viewIs() :
Text::make('Preview', function () {
if($this->viewIs('index'){
return \small_preview($this->image);
}
return \large_preview($this->image);
})->asHtml(),
解决方案
您可以检查请求的类:
Text::make('Preview', function () use ($request) {
if ($request instanceof \Laravel\Nova\Http\Requests\ResourceDetailRequest) {
return \large_preview($this->image);
}
return \small_preview($this->image);
});
否则,您可以创建自己的 viewIs 函数:
// app/Nova/Resource.php
/**
* Check the current view.
*
* @param string $view
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @retrun bool
*/
public function viewIs($view, $request)
{
$class = '\Laravel\Nova\Http\Requests\\Resource'.ucfirst($view).'Request';
return $request instanceof $class;
}
然后你可以这样做:
Text::make('Preview', function () use ($request) {
if ($this->viewIs('detail', $request) {
return \large_preview($this->image);
}
return \small_preview($this->image);
});
推荐阅读
- maven - 哪个dependencyManagement 正在设置我的依赖版本?
- database - 每次我想在终端上运行`mongo`时如何跳过运行`mongod`?
- ruby-on-rails - Mac cocoapod 和 gem 命令抛出错误,不允许操作 - getcwd (Errno::EPERM)
- javascript - 如何合并/加入两个组件父/子状态反应
- regex - 如何删除 &fbclid 之后的文本
- spring-boot - 为什么部署的 spring boot jar 与开发机相比在日志中显示不同的不必要消息?
- gem5 - RISCV-V 在 Gem5 上的实现
- python - 通过用 Python 编写的 timetrigger azure 函数在 azure blob 中上传数据
- python - 使用 Tensorflow 1.X 的 Horovod 局部梯度聚合
- gerrit - Gerrit 樱桃采摘