11

Laravelの最近の新しいマイクロフレームワークであるLumenを使用しています。

フォームビルダーを探していたところ、Former が見つかりました:

http://anahkiasen.github.com/former/

次のコードを単純なブレードビューに入れました:

use Former\Facades\Former;

echo Former::open()->method('GET');
    echo Former::text('name')->required();
echo Former::close();

次のエラーが表示されます。

ErrorException in Container.php line 776:Class former does not exist (View: ...)

だから私は app.php に ServiceProvider を追加しました:

$app->register('Former\FormerServiceProvider');

次のエラーが表示されます。

Fatal error: Call to undefined method Illuminate\Config\Repository::package() in D:\...\vendor\anahkiasen\former\src\Former\FormerServiceProvider.php on line 147

私の質問は次のとおりです。Lumen を使用してそれを行うにはどうすればよいですか? さらに悪いことに、Lumen で適切なフォーム ビルダー ライブラリを取得するにはどうすればよいですか?

よろしくお願いします

4

2 に答える 2

0

このcomposer.json構成は私のアプリで機能するようです。

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/formers/former.git"
    }
],
"require": {
    "laravel/lumen-framework": "5.0.*",
    "vlucas/phpdotenv": "~1.0",
    "anahkiasen/former": "4.0.x-dev"
},

実行後:

composer update -vvv

私は自分を更新しますbootstrap/app.php

/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
|
| Here we will register all of the application's service providers which
| are used to bind services into the container. Service providers are
| totally optional, so you are not required to uncomment this line.
|
*/

// $app->register('App\Providers\AppServiceProvider');
$app->register('Former\FormerServiceProvider');

でのテストapp/Http/routes.php:

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
use Former\Facades\Former;

$app->get('/', function() use ($app) {
    echo Former::open()->method('GET');
        echo Former::text('name')->required();
    echo Former::close();
});

出力:

<form accept-charset="utf-8" class="form-horizontal" method="GET">
    <div class="form-group required">
        <label for="name" class="control-label col-lg-2 col-sm-4">Name<sup>*</sup></label>
        <div class="col-lg-10 col-sm-8">
            <input class="form-control" required="true" id="name" type="text" name="name">
        </div>
    </div>
</form>

すべてうまくいくようです。問題は古いパッケージだと思います。

アップデート

私はapp/Http/routes.php次のように変更します:

$app->get('/', function() use ($app) {
    return view('foo');
});

そして、これは私のものfoo.blade.phpです:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Foo</title>
</head>
<body>
    {!! Former\Facades\Former::open()->method('GET'); !!}
        {!! Former\Facades\Former::text('name')->required(); !!}
    {!! Former\Facades\Former::close(); !!}
</body>
</html>

そして、それは機能します。

于 2015-05-20T04:17:35.637 に答える
0

Laravel 5のIlluminate\Config\Repositoryクラスには4.0ブランチを取得しましたかパッケージ( http://laravel.com/api/5.0/Illuminate/Config/Repository.html )と呼ばれるメソッドがありません

Lumen は illuminate/config 5.0.* を使用するため、フォーム ビルダー用に 4.0 ブランチを取得する必要があります。( https://github.com/formers/former#for-laravel-5-use-the-40-branch )

于 2015-04-22T10:55:06.127 に答える