6

我在 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);
}

对于包裹,我有以下内容:

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);
}

但是,这不会加载位于以下位置的刀片模板:

workbench/packagenamespace/package/src/views/page/showPage.blade.php

这也不起作用:

return View::make('packagenamespace/package/src/page/showPage')

另外,我想知道我对使用外观对象的 use 语句所做的操作是否正确,对我来说,似乎应该有一种更简洁的方式来访问 View 对象之类的东西?

4

2 回答 2

16

您应该阅读文档: http: //four.laravel.com/docs/packages

特别是解释从包中加载视图的部分;)

return View::make('package::view.name');

如果您不想使用:

use Illuminate\Support\Facades\View;

做就是了:

use View;

甚至没有 use 语句:

\View::make('package::view.name');
于 2013-02-03T23:50:16.440 回答
0
// Serviceprovider.php

$this->loadViewsFrom(__DIR__.'/resources/views', 'laratour');

// Controller    

<?php
    
    namespace Mprince\Laratour\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Routing\Controller;
    
    class LaratourController extends Controller
    {
    
        public function index()
        {
            return view('laratour::index');
            // return view('packageName::bladeFile');
        }
        //END
    }
于 2021-10-31T09:33:46.323 回答