ホームページ バックエンド開発 PHPチュートリアル Laravel 5 の基本 (11) - サブビューとフォームの再利用

Laravel 5 の基本 (11) - サブビューとフォームの再利用

Jun 13, 2016 pm 12:17 PM
form gt

Laravel 5 の基本 (11) - サブビューとフォームの再利用

記事の編集の問題に対処する必要があります。もちろん、次のように新しいルートを手動で追加することもできます:

<code>Route::get(&#39;/articles/{id}/edit&#39;, &#39;[email&#160;protected]&#39;);</code>
ログイン後にコピー

コマンドラインで artisan または route:list を使用して、現在のルートを表示します:

<code>php artisan route:list</code>
ログイン後にコピー

RESTful準拠の場合は、laravelのresourceルートを直接使用するのが良い選択かもしれませんが、すべてのルートを削除し、唯一の

<code>Route::resource(&#39;articles&#39;, &#39;ArticlesController&#39;);</code>
ログイン後にコピー

を再度追加します。<code>php artisan route:list</code>を使用します。 > ルートを表示すると、期待どおりのルートが多数生成されています。それぞれの項目を注意深く見てください。

次に、コントローラーにメソッドを追加します。

<code>    public function edit($id) {        $article = Article::findOrFail($id);        return view(&#39;articles.edit&#39;, compact(&#39;article&#39;));    }</code>
ログイン後にコピー

次に、ビューを作成します

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Edit: {!! $article->title !!} </h1>    <hr/>    ...</code>
ログイン後にコピー

わかりました。これらのコードが create.blade.php からコピーされたことを認めます。が出てきて少し修正されましたが、問題はそれを繰り返す必要があるかということです。この問題については後で扱います。ここではフォーム送信の問題を見てみましょう。ルーティング内の <code>php artisan route:list</code> をもう一度見て、PATCH メソッドを使用して変更します。ビューを変更しましょう:

<code>{!! Form::open([&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!} </code>
ログイン後にコピー

ブラウザで /articles/1/edit にアクセスし、ソース コードを確認して、laravel を見つけます。自動的に _method=PATCH の隠しフィールドが生成されます。

問題の 1 つは、記事を編集しても記事の情報が表示されないことです。

<code> {!! Form::model($article, [&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!}</code>
ログイン後にコピー

OK、published_on フィールド以外はすべて問題ありません。はまだ現在の日付に設定されているため、後で処理します。

次に、コントローラーにメソッドを追加します。

<code>    public function update($id, \Illuminate\Http\Request $request) {        $article = Article::findOrFail($id);        $article->update($request->all());        return redirect(&#39;articles&#39;);    }</code>
ログイン後にコピー

変更プロセス中に検証する必要もあります。Request クラスを再利用し、CreateArticleRequest の名前をより一般的な <🎜 に変更しましょう。 > の場合は、ArticleRequest メソッドのパラメーターを変更することを忘れないでください。 store

<code>    public function update($id, Requests\ArticleRequest $request) {        $article = Article::findOrFail($id);        $article->update($request->all());        return redirect(&#39;articles&#39;);    }</code>
ログイン後にコピー
現在残っている問題は、新規コードと編集コードが表示エラーなどほとんど同じコードを使用していることですが、それらは 2 つのコピーに存在するため、この問題を修正しましょう。

の直下に新しいファイル views/articles を作成し、list.blade.php からエラー処理コードをコピーします。 create.blade.php

<code>@if ($errors->any())    <ul class="alert alert-danger">        @foreach($errors->all() as $error)            <li>{{ $error }}</li>        @endforeach    </ul>@endif</code>
ログイン後にコピー

では、次のステートメントを使用します。エラー処理コード: create.blade.php

<code>@include(&#39;articles.list&#39;)</code>
ログイン後にコピー
フォーム コードをもう一度扱います。

が送信ボタンと異なる点を除いて、フォーム コードはほぼ同じです。ビュー form を作成し、コードをコピーします articles/form_partial.blade.php

<code><div class="form-group">    {!! Form::label(&#39;title&#39;, &#39;Title:&#39;) !!}    {!! Form::text(&#39;title&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}</div><div class="form-group">    {!! Form::label(&#39;body&#39;, &#39;Body:&#39;) !!}    {!! Form::textarea(&#39;body&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}</div><div class="form-group">    {!! Form::label(&#39;published_at&#39;, &#39;Publish On:&#39;) !!}    {!! Form::input(&#39;date&#39;, &#39;published_at&#39;, date(&#39;Y-m-d&#39;), [&#39;class&#39; => &#39;form-control&#39;]) !!}</div><div class="form-group">    {{--这里要设置变量,依据是编辑还是修改来改变,当然也可以不放置在partial中--}}    {!! Form::submit($submitButtonText, [&#39;class&#39; => &#39;btn btn-primary form-control&#39;]) !!}</div></code>
ログイン後にコピー
変更

create.blade.php

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Write a New Article</h1>    <hr/>    @include(&#39;articles.list&#39;)    {{--使用我们添加的 illuminate\html 开源库--}}    {!! Form::open([&#39;url&#39; => &#39;articles&#39;]) !!}        @include(&#39;articles.form_partial&#39;, [&#39;submitButtonText&#39; => &#39;Add Article&#39;])    {!! Form::close() !!}@stop</code>
ログイン後にコピー
変更

edit.blade.php

<code>@extends(&#39;layout&#39;)@section(&#39;content&#39;)    <h1>Edit: {!! $article->title !!} </h1>    <hr/>    @include(&#39;articles.list&#39;)    {{--使用我们添加的 illuminate\html 开源库--}}    {!! Form::model($article, [&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!}    @include(&#39;articles.form_partial&#39;, [&#39;submitButtonText&#39; => &#39;Update Article&#39;])    {!! Form::close() !!}@stop</code>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

watch4proとGTのどちらが優れていますか? watch4proとGTのどちらが優れていますか? Sep 26, 2023 pm 02:45 PM

Watch4proとgtはそれぞれ特徴や適用シーンが異なりますが、総合的な機能、高性能、スタイリッシュな外観を重視し、価格は高くてもいいという方にはWatch 4 Proの方が適しているかもしれません。高度な機能要件はなく、バッテリー寿命と手頃な価格を重視する場合は、GT シリーズの方が適しているかもしれません。最終的な選択は、個人のニーズ、予算、好みに基づいて決定する必要がありますが、購入する前に自分のニーズを慎重に検討し、さまざまな製品のレビューや比較を参照して、より情報に基づいた選択を行うことをお勧めします。

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 Mar 21, 2024 pm 10:31 PM

iPadOS 17.4 で iPad のバッテリー寿命を最適化する方法 バッテリー寿命の延長はモバイル デバイス エクスペリエンスの鍵であり、iPad がその良い例です。 iPad のバッテリーの消耗が早すぎると感じても、心配しないでください。iPadOS 17.4 には、デバイスの実行時間を大幅に延長できるトリックや微調整が多数あります。この詳細なガイドの目的は、情報を提供するだけではなく、iPad の使用方法を変え、全体的なバッテリー管理を強化し、充電せずにデバイスをより長く使用できるようにすることです。ここで概説したプラクティスを採用することで、個人のニーズや使用パターンに合わせてテクノロジーをより効率的かつ意識的に使用するための一歩を踏み出すことができます。主要なエネルギー消費者を特定する

Binaryxは再び名前が変更され、コミュニティに与える4つは急上昇しようとしていますか? Binaryxは再び名前が変更され、コミュニティに与える4つは急上昇しようとしていますか? Mar 04, 2025 pm 12:00 PM

Binaryxのトークン名の変更:BNXから4へ、そして形成するために、BinaryXは最近、トークンシンボルを4ドルに変更しました。 BinaryXがその名前を変更したのはこれが初めてではなく、そのトークンシンボルがBNXから4への移行を受けました。この記事では、この一連の名前の変更の背後にある戦略的意図について詳しく説明します。 1。トークン名の変更プロセスと戦略的考慮事項Binaryxは、2021年にBNBチェーンに基づいて$ BNXトークンを最初に起動し、プレイアリーン(P2E)ゲームエコシステムをサポートしました。 2024年初頭、経済モデルを最適化するために、BinaryXは$ BNXを分割し、GameFに徐々に拡張しました

See all articles