質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

1802閲覧

Laravel 入門(青本) p218-219 「updateによるレコード更新」の実装について

fji849bffkk

総合スコア7

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2020/06/05 03:48

#現状

こんにちは。お世話になっております。

データベース初心者であることもあり、通称青本と呼ばれる「Laravel 入門」を購入し、実装しておりました。

しかし、p218-219において、updateの更新を試みてプログラムを実装し、ブラウザを開いたら

404 | Not found

と出てしまいました。

#試したこと
青本には載ってなかったのですが、web.phpに原因があるのかなの推測し、ルート情報の関数を書き換え,
hello/edit
と書き換えたらedit関数で表記したページはでました。
しかし、sendのボタンを押したら、404| Not foundとでてしまいました。

#質問
404 | Not found とでてしまう理由をご教授していただけますでしょうか。

#ソースコード

HelloContoroller

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use Illuminate\Http\Response; 7use App\Http\Requests\HelloRequest; 8use Validator; 9use Illuminate\Support\Facades\DB; 10 11 12class HelloController extends Controller 13{ 14 15 public function index(Request $request){ 16 $items=DB::table('people')->orderBy('age', 'asc')->get(); 17 return view('hello.index',['items'=> $items]); 18 } 19 20 public function post(Request $request){ 21 $items=DB::select('select * from people'); 22 return view('hello.index',['items'=> $items]); 23 } 24 25 public function add(Request $request){ 26 return view('hello.add'); 27 } 28 29 public function create(Request $request){ 30 $param=[ 31 'name'=>$request->name, 32 'mail'=>$request->mail, 33 'age'=>$request->age, 34 ]; 35 DB::table('people')->insert($param); 36 return redirect('/hello'); 37 } 38 39 public function edit(Request $request){ 40 $item=DB::table('people') 41 ->where('id', $request->id)->first(); 42 return view('hello.edit', ['form'=>$item]); 43 } 44 45 public function update(Request $request){ 46 $param=[ 47 'name'=>$request->name, 48 'mail'=>$request->mail, 49 'age'=>$request->age, 50 ]; 51 DB::table('people') 52 ->where('id', $request->id) 53 ->update($param); 54 return redirect('/hello'); 55 } 56 57 public function del(Request $request){ 58 $param=['id'=>$request->id]; 59 $item=DB::select('select * from people where id = :id', $param); 60 return view('hello.del', ['form'=>$item[0]]); 61 } 62 63 public function remove(Request $request){ 64 $param=['id'=>$request->id]; 65 DB::delete('delete * from people where id = :id', $param); 66 return redirect('/hello'); 67 } 68 69 public function show(Request $request){ 70 $page=$request->page; 71 $items=DB::table('people') 72 ->offset($page*3) 73 ->limit(3) 74 ->get(); 75 return view('hello.show', ['items'=>$items]); 76 } 77} 78 79

web

1<?php 2 3use Illuminate\Support\Facades\Route; 4 5/* 6|-------------------------------------------------------------------------- 7| Web Routes 8|-------------------------------------------------------------------------- 9| 10| Here is where you can register web routes for your application. These 11| routes are loaded by the RouteServiceProvider within a group which 12| contains the "web" middleware group. Now create something great! 13| 14*/ 15 16use App\Http\Middleware\HelloMiddleware; 17 18Route::get('hello/edit','HelloController@edit'); 19Route::post('hello/edit','HelloController@update');

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/06/05 04:30

>青本 Laravel重用者にはあまり評判はよろしくないようです(というかこの作者の書籍自体が) それとは関係ないですが、バージョンは全てあわせてますか?でないとほとんど参考にならないと思います。 書籍は執筆当時最新かもしれないですが、出版当時古くなっていることもあります。
fji849bffkk

2020/06/05 05:08

ご返事ありがとうございます! 正直そういった噂は聞いていたのですが、そういうのにこだわりすぎると初心者は何も進まないと思ったので、ある程度の知識つけてから実践という形にした方がいいかなと思い、今はこの書籍を参考にしておりました。 今私の手元にあるlaravel入門(青本)は3か月くらい前に最新版がでたものなのでバージョンはあってると思います。
kai0310

2020/06/05 05:15

> そういうのにこだわりすぎると初心者は何も進まないと思ったので バージョンに依存したエラーが出る場合もあります。初学者のうちはそのようなエラーで進まなくなってしまう場合もあるので、避けておいた方が良いかと個人的には思います。
fji849bffkk

2020/06/05 05:19

ご返事ありがとうございます! そうしますと、皆さん、初学者の時はどのような勉強法を施していたのでしょうか。
m.ts10806

2020/06/05 05:21

>思います 「思う」ではなく確認してください。
kai0310

2020/06/05 05:26

やはりドキュメントを活用しています。 書籍でも良いとは思いますが、デバッグの仕方などは恐らく書籍には書かれてはいないかと思います。仕様を確認する力・調べる力が大切だったりしますので。
m.ts10806

2020/06/05 05:27

初学者でもなんでも関係ないですが、公式ドキュメント(またはそれに類する日本語訳ドキュメント)を活用することが何より確実です。 書籍や個人記事などは「初学者でもわかりやすくするために」という"体で"、著者や筆者の解釈(時には勝手な)が入るため、嘘となってしまうことや本来の意図とずれた内容になることがままあります。 ドキュメントとの整合性をとるのは必須です。 それはフレームワークに限らず、言語でも。 いずれにしてもLaravelは他のPHPフレームワークよりももととなるPHPの基礎、Webの体系的な理解 の求められるレベルが高い認識です。 「Web職人のためのフレームワーク」ですから。 「初学者で…」だと、大抵好ましくない実装の書籍を選んでしまい、行き詰まって質問してしまうのがオチです。 せめて起きた問題がPHP由来かフレームワーク由来か、Webの根本的なところなのか 区別できるくらいにはなっておきましょう。
kei344

2020/06/07 01:11

まだ質問が「受付中」になっていますが、「ベストアンサー」を選び「解決済」にされてはいかがでしょうか。
guest

回答1

0

ベストアンサー

下記でどうでしょうか?

PHP

1// PUTもしくはPATCH 2 3Route::put('hello/edit','HelloController@update'); 4Route::patch('hello/edit','HelloController@update');

投稿2020/06/05 04:13

kai0310

総合スコア2070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fji849bffkk

2020/06/05 05:05

ご返事ありがとうございます! 一度やってみましたらGet メソッドがないとエラーが出ました…。
kai0310

2020/06/05 05:08

おそらく methodがgetになっているからかと思いますので、リクエストを変えてみてください。
fji849bffkk

2020/06/05 05:18

ありがとうございます! やってみます。
kai0310

2020/06/05 05:43

ちなみにこちらは解決できましたでしょうか?
fji849bffkk

2020/06/07 01:01

ご返事おそくなってすみません! できました! ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問