2022年08月26日

前回の記事で入力値で表示が変わる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と入力した結果です";
}
}
このように変更します。
namespaceやuse、classの部分は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ファイルを作成していきます。
お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。