假设我们有UserCrudController
这样:
public function setup()
{
// ...
// This works:
$this->crud->addClause('active');
// ...
}
addClause()
工作正常。现在说我们将其添加到setup()
:
public function posts()
{
// ...
// This DOES NOT work:
$this->crud->addClause('active');
// ...
}
像这样在外面调用addClause()
有效,但如果它在逻辑内部,它不会:
public function setup()
{
// This works:
$this->applyQueries();
}
private function applyQueries()
{
// This works:
$this->crud->addClause('active');
// This DOES NOT work:
if (true)
$this->crud->addClause('active');
}
回顾:我需要从另一个函数和逻辑内部调用addClause()
。怎么样?
答案 0 :(得分:0)
如果你正在创建一个自定义方法,那么Backpack无法知道你想在该方法中做什么。除了在setup()
中调用__constructor()
中的内容之外,只会在其中编写内容。
根据你的使用案例(list / create / edit / preview / etc),我建议你看看Backpack的CrudController
里面的逻辑。其中的方法包含上述操作的逻辑,并使用addClause()
。复制粘贴您posts()
方法所需的任何内容。您基本上可以通过利用$this->crud
对象来使用添加了子句的查询,因此查询将为$this->crud->query
。