2016-10-27 47 views
0

我在我的Laravel项目中有一个包含它自己的包的包。我需要在我的项目的主视图中包含该视图。我的软件包被命名为Tkabir \ Somepackage。在我的项目的config/app.php,我已经包括了包装上的服务供应商在我的主视图中包含包视图

'providers' => [ 
    /* 
    * Package Service Providers... 
    */ 
    Tkabir\Somepackage\SomeServiceProvider::class, 
] 

,也包括了包装的正面别名为

'aliases' => [ 
    /* 
    */ 
    'Somepackage' => Tkabir\Somepackage\Facade\Somepackage::class, 
] 

但尽管如此,当我尝试包括鉴于从包在我的主要观点是这样的:

@include('Somepackage::welcome') 

...其中welcome.blade.php是我的包刀片视图文件,我得到显示以下错误:

FileViewFinder.php中的ErrorException异常行112: 没有为[Somepackage]定义的提示路径。 (查看:E:\ xampp \ htdocs \ laravel-> projects \ test_package \ resources \ views \ welcome.blade.php)

看起来这里有什么问题?

这里的链接到我的包在Github上,如果有人需要看文件:mypackage

+0

另外,有人可以有高代表请编辑我的帖子的标题,使更多的意义?我开始写标题,但后来完全忘了完成它-_- – BangularTK

+0

更好地发布您的包视图到laravel资源目录它将很容易访问。 – umefarooq

回答

0

@include包括视图。你在为一个班级打电话。

你包括

$this->publishes([ 
    .'/Config/somepackage.php' => config_path('somepackage.php'), 
], 'config'); 

你需要做你的意见同样的事情在你的服务提供商的boot()方法的观点正确配置:https://laravel.com/docs/5.3/packages#views |标题:出版社访问量

您还需要运行php artisan vendor:publish就像你的配置,并且包括与@include

您的观点看看我在Laravel

了对建筑包装完整文档的链接
+0

非常感谢!完全按照你的说法,它就像一个魅力!但是,从controller/config定义的包中,我有一些变量。所以为了在我的主视图中使用这些变量,我还必须从包中发布控制器和配置文件,对吧? – BangularTK

+0

这可能是最好的离开Laravel控制器,而只是在你的包中创建一个类。然后在加载需要包含的视图的其中一个控制器中调用该类,然后传入该数据。 – Pazuzu156