PHP

スポンサー広告

Laravel5.4 MySQLと接続その3

2017/08/06

Laravel5.4 MySQLと接続その2の続きです。

おさらい(手順)

  1. php artisan make:model テーブル名(頭大文字単数形) -m でマイグレーションファイルとModelのPHPファイルを作成
  2. マイグレーションファイルを編集してテーブルのカラムを定義
  3. php artisan migrateでテーブル作成
  4. インストールフォルダ/Appの下のモデルファイルに protected $fillable =['カラム名','カラム名','カラム名'];を追記(編集していいカラム名)
  5. 手動でテーブルデーターを入力
  6. viewを作る。下の12の変数名を埋め込む
  7. web.phpでModelフィルをuseして変数=モデル内クラス::all();
  8. return view('article',compact('変数名'));

とわかったようなわからない手順でした。

controlerからモデルにアクセスしてデータをviewに渡す

今回は上記7の手順をコントローラーにしてもらいます。

artisanを使います。

php artisan make:controller コントローラー名

コントローラー名はFooControllerのようなパスカル記法(単語の頭が大文字)がお作法のようです。

MySQLのArticleテーブルに対するコントローラーを作成しようと思います。インストールフォルダに移動して

php artisan make:controller ArticleController

コントローラーの作成

これでインストールフォルダ/app/Http/Controllerの中にArticleController.phpが作成されました。

ArticleController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller
{
    //
}

クラスの内容が空のファイルが作成されました。このクラス内に処理を書きます。

クライアントからサイトにアクセスがあるとweb.phpでviewを指定するのですがその時にcontroller(のメソッド)の指示でDBからデータを取得したり、登録したり、処理の結果をviewに渡すようにします。ですから今回はmodelからデータを引っ張ってきてすべてのデータを渡します。

modelは手順4(Laravel5.4 MySQLと接続その2)でできていますすべてのデータはmodelを呼んでテーブル名::all();で取得できます。今回はArticleController.phpにindexクラスを作りその中で$article = Article::all();をしてviewに返してあげます。

ArticleController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Article;        // モデルを呼ぶのに必要

class ArticleController extends Controller
{
     public function index(){
	    $article = Article::all();
	    return view('article', compact('article'));
	 }
}

これでコントローラーからモデルを呼んですべてのデータを取得して$articleでそのデータを渡してあげられます。$articleは配列になるので複数形の$articlesの方がよかったですが、前回単数形でviewも作ってしまったので気にせず行きます。

あとはweb.phpでコントローラを呼ぶようにしてあげれば完成です。

前回のRouteが残っている場合は消します。

web.php

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});
Route::get('/article','ArticleController@index');  // articleにアクセスがあったらArticleControllerのindexメソッドを実行せよ

それで、上記のコントローラーのメソッドが呼ばれてモデルからデータを取得。articleという配列をviewのarticleにreturnしてね。

viewのarticleはLaravel5.4 MySQLと接続その2の時と同じです。

簡単ではありますが、laravel5.4でのMVCモデルを実行してみました。

rssfeed
コメント
2021年02月05日 19時42分
buyprednisoneonline さん
Prednisone is able to help during any severe disease. Its spectrum of action is broad that it covers almost all known diseases of autoimmune, allergic, and tumour origin http://www.lovejones4kids.com/wp-includes/csm/buy-cheap-prednisone/ order prednisone without prescription
2021年02月18日 21時39分
neurontinbuy さん
Neurontin is used for treating seizures associated with epilepsy. Read more about <a href="https://casadosaber.com.br/wp-content/uploads/csm/buyneurontinonline/">buy gabapentin 300mg online</a> - Only High Quality medicines & Free Express Shipping!
2021年04月26日 13時33分
PjcBF さん
Medicines information for patients. Short-Term Effects.
<a href="https://lyricainfo.top">where can i get cheap pregabalin without insurance</a> in US
Everything news about medicines. Read here.
2021年04月28日 19時36分
LsqJI さん
Drugs information. What side effects can this medication cause?
<a href="https://lyrica24x7.top">buying generic lyrica without a prescription</a> in US
All what you want to know about medicament. Read now.
2021年04月30日 21時21分
JaniceFut さん
buying cialis cheap <a href="https://mycialistabs.com/">tadalafil 20 mg</a> cialis logo
2021年04月30日 22時44分
JaniceFut さん
prices of cialis <a href="https://mycialistabs.com/">cialis pills</a> cialis substitute
2021年05月04日 16時27分
TiffanyVione さん
when to take cialis <a href="https://toptadalafiltabs.com/">cialis website</a> cialis for men
2021年05月04日 19時55分
TiffanyVione さん
cialis and lisinopril <a href="https://toptadalafiltabs.com/">what is cialis for</a> cialis side effects a wife's perspective
2021年05月06日 09時54分
StellaNum さん
write essay examples <a href="https://topessaywriterfas.com/">write college essay</a> how to write cause and effect essay example
2021年05月06日 13時15分
StellaNum さん
how to write an essay apa style <a href="https://topessaywriterfas.com/">writing a compare and contrast essay</a> how to write a good why this college essay
2021年05月07日 14時21分
RebeccaFrome さん
essay about pre service teacher <a href="http://writemyessayslfd.com/">help writing college essays</a> essay service attacks
2021年05月07日 15時15分
RebeccaFrome さん
essay writing introduction <a href="http://writemyessayslfd.com/">writing essay conclusion</a> writing an essay for college admission
2021年05月07日 23時02分
Francesvat さん
sildenafil over the counter usa <a href="https://mrviagrashop.com">viagra near me</a> buying viagra online legal
2021年05月07日 23時56分
Francesvat さん
online pharmacy ezzz viagra <a href="https://mrviagrashop.com">viagra without a prescription</a> taking viagra
2021年05月08日 12時08分
Martinahug さん
viagra connect usa <a href="https://mysildenafilkr.com/">viagra para mujeres</a> mexican viagra
2021年05月08日 12時55分
Martinahug さん
viagra generic <a href="https://mysildenafilkr.com/">sildenafil</a> womens viagra

コメントよろしくお願いします。

お名前
コメント