我在PHP 5.5.9上使用Laravel 5.2
我使用PHP __callStatic方法动态添加功能,而不是以下控制器中的硬编码方法。我从Console尝试时工作正常但是在调用方法路由时,我收到以下错误
方法App \ Http \ Controllers \ showCategory :: latest()不存在
这是我的路线
Route::get('Category/{id}', 'showCategory@latest');
这是我的控制器
class showCategory extends Controller
{
public $methods = [
'latest' => 'created_at',
'newArrival' => 'created_at',
'mostViewed' => 'views'
];
public function get( $link_or_id, $orderBy = 'created_at' )
{
}
public static function __callStatic($func, $arg)
{
$category = new self();
if( array_key_exists( $func, $category->methods ) )
{
return $category->get( $arg[0], $category->methods[ $func ] );
}
}
}
有什么帮助指出我搞砸了?
答案 0 :(得分:0)
__ callStatic()。
showCategory ::最新();它的工作原理
从逻辑上讲,你如何在路线中放置最新的方法,你知道它是否被发现,如果你输入路线,它必须在控制器中找到