2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MAMP & Laravel 5.2環境で「Laravel 5.1 基本のタスクリスト 」をやってみた。

Last updated at Posted at 2016-04-28

初の投稿です。

先日より、Laravelフレームワークにチャレンジしようと思い
いろいろと勉強をしておりましたが、基本のタスクリストなるものが掲載されたサイトを発見し
実践していたところ見事にハマってしまったので解決方法を覚書しようというしだいでございます。

とりあず自分のPCの環境とかをつらつらと

OS : OSX Yosemite 10.10.5
MAMP : 3.0.7.3 (3.0.7.3)
PHP : 5.6.2
Laravel : 5.2
参考サイト: Laravel 5.1 基本のタスクリスト

実際にやってみる

参考サイトを読んでみると完成版のソースが公開されている模様、、
サイトのインストール項を参照してGitリポジトリーをクローンしてきました。
※わたしはMAMPのhtdocs配下に配置してApache経由でアクセス出来るようにしました。

クローンしたら手順通り
「composer install」で足りないlaravelのモジュールをインストール
バージョン確認してみたら5.2が、、まぁ勉強になるカナとそのまま進める。。

PC:quickstart USER$ pwd
/Applications/MAMP/htdocs/quickstart
PC:quickstart USER$ composer install

PC:quickstart USER$ php artisan --version
Laravel Framework version 5.2.20

下記コマンドもDBの設定だけやってペペっと

composer install
php artisan migrate

mysql使ってます。
最初は多分こんなに簡単にはいかないので調べながらやってください。

で き た !

これだけでチュートリアルできた〜!って気になれますね。

image
※なんとなくiPhoneのシュミレータでやってますけど特に意味は無いです。

あれ??

あらら...
デリートボタンを押すとこんなことに(涙)
image

なぜなのか...
サーフィンして調べたけど見つけられなかった...
仕方が無いのでソースを見てみることに。
多分ルーティングとかがおかしいんじゃ無いかなぁと思ってroutes.phpとかをいじってみたけどダメ
初心者の私にはソースを読んだところで解らないということがわかった。

いやいやここで引き下がるわけにはいかない。

何かとっかかりを見つけなければ。
あれ、よく見てみるとアクセスしてるURLがおかしいような気が・・・
image
formタグのアクションが変のかな〜って思って出力されたHTMLソースを見に行ってみる

おお〜これだ〜!見つけました。

  • デリートのフォーム
          <!-- Task Delete Button -->
          <td>
           <form action="/task/4" method="POST">
  • インサートのフォーム
    <!-- New Task Form -->
     <form action="http://localhost/quickstart/public/task" method="POST" class="form-horizontal">

デリートのフォーム要素にあるアクション属性がアレですね。
Apacheのドキュメントルート変えれば動くような気がしてなりませんが
面倒くさいので勉強としてtasks.blade.phpの下記部分を書き換えてみます。

tasks.blade.php
<!-- Task Delete Button -->
<td>
    <form action="/task/{{ $task->id }}" method="POST">
        {{ csrf_field() }}
        {{ method_field('DELETE') }}

        <button type="submit" class="btn btn-danger">
            <i class="fa fa-btn fa-trash"></i>Delete
        </button>
    </form>
</td>

これ↑をこう↓

tasks.blade.php
<!-- Task Delete Button -->
<td>
    <form action="{{ url('task')}}/{{ $task->id }}" method="POST">
        {{ csrf_field() }}
        {{ method_field('DELETE') }}

        <button type="submit" class="btn btn-danger">
            <i class="fa fa-btn fa-trash"></i>Delete
        </button>
    </form>
</td>

するとすると

デリート成功!
image
無事動くようになりました!!!
ホントはhttpd.confとかでエイリアスを貼ったほうが良いと思います。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?