Al_*_*Al_ 6 php laravel laravel-4
我在Laravel 4中创建了一个非常基本的应用程序,这是我将在各种项目中重复使用的东西,所以在我走得太远之前将它转换为包是有意义的,但我很难做出改变让它工作,我认为主要是由于弄清楚如何访问应用程序中通常可用的各种对象,例如View :: make
我在应用程序中使用了以下代码:
class PageController extends BaseController {
public function showPage($id)
{
//do stuff
return View::make('page/showPage')
->with('id', $id)
->with('page', $page);
}
Run Code Online (Sandbox Code Playgroud)
对于包我有以下内容:
use Illuminate\Routing\Controllers\Controller;
use Illuminate\Support\Facades\View;
class PageController extends Controller {
public function showPage($id)
{
//do stuff
return View::make('page/showPage')
->with('id', $id)
->with('page', $page);
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会加载位于以下位置的刀片模板:
workbench/packagenamespace/package/src/views/page/showPage.blade.php
Run Code Online (Sandbox Code Playgroud)
这也不起作用:
return View::make('packagenamespace/package/src/page/showPage')
Run Code Online (Sandbox Code Playgroud)
另外,我想知道我用use语句做了什么,我使用了facade对象,对我而言,似乎应该有一种更简洁的方式来访问View对象之类的东西?
小智 15
您应该阅读文档:http://four.laravel.com/docs/packages
特别是解释从包加载视图的部分;)
return View::make('package::view.name');
Run Code Online (Sandbox Code Playgroud)
如果你不想使用:
use Illuminate\Support\Facades\View;
Run Code Online (Sandbox Code Playgroud)
做就是了:
use View;
Run Code Online (Sandbox Code Playgroud)
甚至没有使用声明:
\View::make('package::view.name');
Run Code Online (Sandbox Code Playgroud)