Laravel 5.8 新星2.0
在新星行动中
public function fields()
{
return [];
}
这里有什么方法可以访问当前选定的行?
答案 0 :(得分:1)
您可以从 NovaRequest 获取当前模型实例。您可以从传递给方法的 \Illuminate\Http\Request 创建 NovaRequest:
use Laravel\Nova\Http\Requests\NovaRequest;
use Illuminate\Http\Request;
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function fields(Request $request)
{
// Model instance or null
$model = NovaRequest::createFrom($request)
->findModelQuery()
->first();
return [
// Your fields here
];
}
答案 1 :(得分:1)
我只在详细信息页面上运行该操作,然后像这样获取单个模型数据:
$model = DB::table('something')->where('id', request()->resourceId)->first();
答案 2 :(得分:0)
不,有两个原因:
1)fields
在资源加载时调用,而不是在显示操作对话框时调用
2)“当前选择”的概念实际上仅存在于客户端(浏览器)方面
您只能通过handle
PHP方法访问选定的行(即,提交后,您拥有$models
)。
答案 3 :(得分:0)
有时候,当我在详细信息视图中并且想要对该记录执行操作时,又想要字段中的当前记录数据(可能是帮助文本)时,我会从URL中获取它。
//Get the URL
$explodeUrl = explode('/', strrev($_SERVER['HTTP_REFERER']), 2);