Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 允许本地Laravel“;“魔术”;包中的方法_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 允许本地Laravel“;“魔术”;包中的方法

Php 允许本地Laravel“;“魔术”;包中的方法,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在尝试创建一个包,该包围绕视图引擎,并允许神奇的方法与Laravel自己的方法链接 嗨 我目前正在开发一个主题包,允许用户轻松、动态地切换主题,因此它应该可以消除用户自己使用View()函数的需要,该包将通过环绕它来处理这个问题 我现在的问题是,;我似乎不知道如何允许这种情况发生,每当我对环绕它的主题函数执行常规方法链接时,它都不会通过 我该如何动态地实现常规的“魔法方法”(比如Witherror之类的方法),而不必手动将每一种此类方法添加到主题包的代码中 这对我来说有点棘手:( 我的Hom

我正在尝试创建一个包,该包围绕视图引擎,并允许神奇的方法与Laravel自己的方法链接

我目前正在开发一个主题包,允许用户轻松、动态地切换主题,因此它应该可以消除用户自己使用View()函数的需要,该包将通过环绕它来处理这个问题

我现在的问题是,;我似乎不知道如何允许这种情况发生,每当我对环绕它的主题函数执行常规方法链接时,它都不会通过

我该如何动态地实现常规的“魔法方法”(比如Witherror之类的方法),而不必手动将每一种此类方法添加到主题包的代码中

这对我来说有点棘手:(

我的HomeController的一个示例,尝试使用with()链接方法实现所需的方法链接,也可以使用-withErrors()或其他任何方法

我希望本地Laravel的View()方法支持的每个链式方法都能得到我的包的Make()方法的支持


如果没有主题包的源代码,就无法真正帮助您,但它看起来是这样的:

use Illuminate\Support\Traits\ForwardsCalls;

class Theme
{
    use ForwardsCalls;
    ...
    public function __call($method, $parameters)
    {
        return $this->forwardCallTo($this->getView(), $method, $parameters);
    }
}

您可以对
\uu callStatic

执行相同的操作,如果没有主题包的源代码,它将无法真正帮助您,但它看起来是这样的:

use Illuminate\Support\Traits\ForwardsCalls;

class Theme
{
    use ForwardsCalls;
    ...
    public function __call($method, $parameters)
    {
        return $this->forwardCallTo($this->getView(), $method, $parameters);
    }
}

您可以对
\uu callStatic

执行相同的操作。您是否可以改用视图名称空间?然后控制器将具有类似
视图('theme::pages.home')的内容
?嗨,我可以,但目前可能会造成麻烦,我想允许一些灵活性,因为如果我强制它只从主题文件夹中获取视图,这可能会限制用户。另一个需要注意的是,开箱即用的Auth有自己的主文件夹,因此强制它可能会出错,更改这一点可能需要重新创建身份验证控制器,而不是使用本机控制器。它不能像拥有类属性那样简单(就像注册页在App \…\Auth\RegisterController中拥有的那样)。您不能改用视图命名空间吗?然后控制器将具有类似于
view('theme::pages.home')的内容
?嗨,我可以,但目前可能会造成麻烦,我想允许一些灵活性,因为如果我强制它只从主题文件夹中获取视图,这可能会限制用户。另一个需要注意的是,开箱即用的Auth有自己的主文件夹,因此强制它可能会出错,改变这一点可能需要重新创建身份验证控制器,而不是使用本机控制器。它不能像拥有类属性那样简单(就像注册页面在App \…\Auth\RegisterController中的属性)。谢谢!我找不到您所说的特性,所以我想我可能应该更新(然后检查官方存储库以确认)。工作起来像个咒语汉克斯!我找不到你所说的特质,所以我想我可能应该更新(然后检查官方存储库以确认)。工作起来像个咒语