我正在使用 Yii2,我想知道从控制器渲染位于视图目录中子文件夹中的文件的正确方法是什么。比如我有以下情况:
function apply<A extends Record<string, (a: any) => any>, B extends {[P in keyof A]: Parameters<A[P]>[0]}>(
functions: A,
data: B
): {[P in keyof A]: ReturnType<A[P]> {
const result = {} as {[P in keyof A]: B[P]}
const keys = Object.keys(functions) as (keyof A)[]
for(const key of keys)
result[key] = functions[key](data[key])
return result
}
const functions = {
foo: (a: string) => a.length,
bar: (a: number) => a === 42,
baz: (a: boolean) => a ? 'true' : 'false'
}
const data = {foo: 'foo', bar: 42, baz: true}
const result = apply(functions, data)
// The type of `result` is inferred to be:
// {
// foo: number;
// bar: boolean;
// baz: "true" | "false";
// }
到目前为止,我已经尝试了这个选项,但没有成功:
views
-campus (carpeta)
--actividad (subcarpeta)
---2020.php (vista)
我的控制器 return $this->render('/actividad/2020',[]);
return $this->render('/actividad/2020',[],$this->context);
return $this->render('2020',[],$this->context);
return $this->render('@app/views/campus/actividad/2020',[]);
return $this->render('//actividad/2020',[]);
:
CampusController
答案 0 :(得分:0)
如果您在 CampusController
上,想要呈现 2020.php
,并且具有您在问题中显示的文件夹结构:
views
-campus (carpeta)
--actividad (subcarpeta)
---2020.php (vista)
以下所有方法都可以:
return $this->render('actividad/2020');
return $this->render('/campus/actividad/2020');
return $this->render('//campus/actividad/2020');
return $this->render('@app/views/campus/actividad/2020');
如果不向视图传递任何参数,则可以传递一个空数组,但也可以删除第二个参数。
您确实需要返回 $this->render(...)
的结果,在您的问题中,您似乎正在调用 return after,这将返回一个空响应渲染视图文件的结果。