Lalavelを使ってみよう-3

2022年08月26日

Contorollerを作成する

前回の記事で入力値で表示が変わるviewの仕組みを確認しました。

その入力値をViewファイルやModelのファイルに伝える役割を持ったファイルがControllerファイルになります。URLで見た目が変わったのではなくControllerによって必要なViewファイルやテキストを引っ張ってきてるみたいですね。

前回の記事では/plandoで「plandoと入力した結果です」と表示するようにweb.phpで指示しましたが、今回は/plandoでplandoというControllerに入力値を渡して「plandoという値をControllerに渡した結果です」と表示するようにしようと思います。

スポンサーリンク

ターミナルのコマンドで作成

php artisan make:controller plandoController

このコマンドをLaravelのプロジェクトをインストールしたディレクトリで実行します。正しくできていればapp/Http/ContorottersのディレクトリにplandoController.phpのファイルができています。

仮に別のディレクトリにできているのであればターミナルでそのディレクトリにきちんと移動できていないなどの原因が考えられます。

次にできたplandoController.phpのファイルを編集します。

友人はターミナル内で修正していましたが、自分は慣れ親しんだエディターで。なので上の作業もたぶんターミナルじゃなくて普通にphpファイルを作成でもいいんだと思うんですがまぁ慣れるためにコマンドも使用していきます。

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class plandoController extends Controller
{
    //
}

もともとこのようになっているものを

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class plandoController extends Controller
{
    public function index()
    {
      return "palndoと入力した結果です";
    }
}

このように変更します。

namespaceuseclassの部分はLaravelの文法ルールで必要な部分ですね。その中に関数(参考にしたサイトにはメソッドと書いてました)を追記して保存します。

さらにroutes/web.phpのファイルで前回

Route::get('/plando', function () {
    return 'palndoと入力した結果です';
});

と表記した部分を

Route::get('/plando', 'App\Http\Controllers\plandoController@index');

に変更します。

トップページで/plandoを入力した際にapp/Http/Controllers/plandoController.phpのファイルのindexのメソッド(関数)を呼び出すという意味です。

つまりトップページに「palndoと入力した結果です」が表示されるはずなので早速localhost:8000/plandoと入力します。

ちゃんと表示されましたね。

結果としては前回やったものと同じ結果なのですが、Controllファイル内で動的要素を入れて表示する準備ができました。

次はデザインのファイルであるViewファイルを作成していきます。

お知らせ

株式会社プラン・ドゥではphpとデータベースを利用したアプリケーション開発を行なっております。
wordpressでのホームページ作成、phpのスクラッチ開発などが可能です。
業務効率化等でお困りのことがございましたら、システムのご提案からさせていただきますのでお気軽にご相談ください。

その他の取扱商品はこちらからご覧いただけます。
http://plando-inc.co.jp/product

同じカテゴリの記事

関連記事

スポンサーリンク

DTP

Laravel開発

wordpressカスタマイズ

デジタルマーケティング

ライフハック

動画

当社製品について

Contact各種お問い合わせ

お問い合わせ・ご相談など
まずはお気軽にご相談ください

お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。

トップページ コラム 各種お問い合わせ プライバシーポリシー