我正在使用https://github.com/BRACKETS-by-TRIAD/craftable为我的应用生成管理面板。
我有一个属于“组织类型”模型的“组织”模型。
在索引列表中,我希望能够显示“组织类型”名称而不是_id。为此,我必须修改此查询,以急于使用“ with”方法加载关系。
列表的方法签名为:
public static void main( String[] args )
{
try {
SpringApplication.run( ControllerUndMain.class, args );
showLogo();
System.out.println('runs')
} catch(Exception e){
showLogo();
System.out.println('not working')
}
}
,索引方法是:
public static function processRequestAndGet($request, $columns = array(), $searchIn = null, $modifyQuery = null, $locale = null)
Craftable,提供了一个ModifyQuery方法,但是我不确定如何使用它:
$data = AdminListing::create(Organisation::class)->processRequestAndGet(
// pass the request with params
$request,
// set columns to query
['id', 'organisation_type_id', 'name', 'active'],
// set columns to searchIn
['id', 'name']
);
if ($request->ajax()) {
return ['data' => $data];
}
return view('admin.organisation.index', ['data' => $data]);
有人可以帮助我使用回调来修改查询,以便我包括相关的表数据吗?
答案 0 :(得分:0)
好的,所以我遇到了完全相同的问题,我想分享我的做法。
craftable
使用processRequestAndGet
函数,该函数将预期的可调用查询作为第四参数。因此,当您需要使用该参数而不是尝试直接访问modifyQuery
函数时。
$data_r = AdminListing::create(Organisation::class)
->processRequestAndGet(
// pass the request with params
$request,
// set columns to query
['id', 'organisation_type_id', 'name', 'active'],
// set columns to searchIn
['id', 'name'],
function($query) use ($request){
if ($request->has('author_id')) {
$query->where('author_id', $request->author_id);
}
}
);
您几乎是正确的,只需在processRequestAndGet
内传递预期的回调即可。