ホームページ  >  記事  >  バックエンド開発  >  Laravel 5 フレームワーク学習フォーム、laravel5 フレームワーク フォーム_PHP チュートリアル

Laravel 5 フレームワーク学習フォーム、laravel5 フレームワーク フォーム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 09:57:47785ブラウズ

Laravel 5 フレームワーク学習フォーム、laravel5 フレームワーク フォーム

まず、記事の公開を追加するためにルーティングを変更しましょう。

コードをコピーします コードは次のとおりです:
Route::get('articles/create', 'ArticlesController@create');

次にコントローラーを変更します

コードをコピーします コードは次のとおりです:
パブリック関数 create() {
return view('articles.create');
}

ビューを返し、新しいビューを作成します。もちろん、HTML を使用してフォームを直接作成することもできますが、より機能的な方法があります。私たちは Jeffrey Way によって開発されたオープンソース ライブラリ、illuminatehtml を使用します。依存ライブラリをインストールします:

コードをコピーします コードは次のとおりです:
作曲家には、illuminate/html が必要です

Laravelのライブラリを使用するには、laravelに登録する必要があります。 config/app.php には、laravel が提供する Provider フィールドがあり、laravel のライブラリ関数が記述されています。 Laravel Framewirk サービスプロバイダーで...最後に新しい HtmlProvider を追加します

コードをコピーします コードは次のとおりです:
'IlluminateHTMLHtmlServiceProvider',

IlluminateHtmlFromFacade のような長い名前を使用して紹介するのではなく、短い名前が必要です。現在の app.php で aliases セクションを見つけて、最後にエイリアスを追加します。

コードをコピーします コードは次のとおりです:
'フォーム' => 'IlluminateHtmlFormFacade',
'HTML' => 'HtmlHtmlFacade を照らす',

OK、ビューを作成しましょう、views/articles/create.blade.php

リーリー

/articles/create にアクセスしてエラーを確認してください。何が問題だったのかテストしてみましょう。コントローラーで次の変更を加えます:

リーリー


はい、そのとおりです。dd() メソッドが show メソッドに追加されています。このメソッドはメッセージを出力するだけで終了します。もう一度 /articles/create にアクセスしてみましょう。 show の出力が表示されます。

create にアクセスしたときにルートが表示されたのはなぜですか? ルートを見て何が起こったのか見てみましょう。

コードをコピーします コードは次のとおりです:
Route::get('articles', 'ArticlesController@index');
Route::get('articles/{id}', 'ArticlesController@show');
Route::get('articles/create', 'ArticlesController@create');

上記は私たちのルートです。articles/{id} はこれがワイルドカードであることを意味し、articles/ 以降のすべてが一致することに注意してください。ご存知ですか?私たちの /articles/create も彼と一致します。ああ、神様!

解決策は順序を調整することです:

コードをコピーします コードは次のとおりです:
Route::get('articles', 'ArticlesController@index');
Route::get('articles/create', 'ArticlesController@create');
Route::get('articles/{id}', 'ArticlesController@show');

つまり、特別なものから通常のものまで、今後のルーティング設定では常にこの問題に注意を払う必要があります。これで、article/create にアクセスでき、すべて問題ありません。

ブラウザでソース コードを確認すると、メソッドとアクションが生成されるだけでなく、ハッカーによる偽造攻撃を避けるためにサーバーがフォームを検証する際に、非表示の _token フィールドも生成されることがわかります。

ビューを変更してフィールドを追加しましょう:

リーリー


フォームが送信されると、実際には post メソッドを使用して Articles/create に送信されますが、RESTful の習慣に従って、ビューの form メソッドを変更して送信パスを設定しましょう。 。

コードをコピーします コードは次のとおりです:
{!! フォーム::open(['url' => '記事']) !!}

次に、ルート内でフォーム送信イベントを処理します。

コードをコピーします コードは次のとおりです:
Route::post('/articles', 'ArticlesController@store');

コントローラーを扱いましょう

リーリー

入力フォームのjson結果を直接確認できます。タイトル フィールドの値のみが必要な場合は、 Request::get('title') を使用できます。

データベースに追加するにはどうすればよいですか?モデルの助けを借りて、次の方法を直接採用できます

リーリー

とても単純ですが、とても意志的です

一括割り当てを忘れていない場合は、作成中に直接入力できるフィールドを定義するために、モデル内に $fillable 配列を定義しました。

コントローラーを変更し、モデルに追加して、データベースに保存します。

リーリー

レコードを追加してみてください。素晴らしいです。でも忘れないでください。 published_at というフィールドもありますので、それを扱いましょう。

リーリー

新しいレコードを追加してテストします。

もう一つ問題があります。新しく追加したコントローラーが最前面に表示されるはずです。次のコントローラーを修正しましょう。

リーリー

以上がこの記事の全内容です。Laravel5 フレームワークを学習する皆さんのお役に立てれば幸いです。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/980211.html技術記事 Laravel 5 フレームワーク学習フォーム、laravel5 フレームワーク フォームでは、まずルーティングを変更して記事のパブリケーションを追加できます。 コードをコピーします コードは次のとおりです: Route::get('articles/create', 'A...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。