6

私はLaravel4で非常に基本的なアプリを作成しました。これはさまざまなプロジェクトで頻繁に再利用するものなので、行き過ぎる前にパッケージに変換するのは理にかなっていますが、変更を加えるのに苦労しています。それを機能させるには、これは主に、アプリで通常利用できるさまざまなオブジェクトにアクセスする方法を理解しているためだと思います。たとえば、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 に答える