日記(2019/01/27)CoreServerでLaravel(コントローラ)

今日はコントローラを作成します。

処理の流れは、

  1. ルーティング(routes/web.php)
  2. コントローラ(app/Http/Controllers/***Controller.php)

となるようです。

SpringBootや、ASP.netのMVC5、Djangoなどと同じような流れと思ってよさそうです。

Controllerクラスのテンプレートファイルを、artisanコマンドで作成します。今回は承太郎クラスを作成します。

[hogeo@coresrv lalaproject]$ php71cli artisan make:controller JotaroController
Controller created successfully.

 

作成したクラスを編集していきます。今回はターミナルからそのままviで編集していますが、どうもartisanコマンドでクラスファイルを作るとCoreserverの仕様なのか、ファイルのエンコードが「fileencoding=iso-2022-jp」となり、ブラウザで表示した際に日本語が文字化けしてしまいす。

丁寧にVSCodeなどで編集してファイルエンコードなどを確認してから保存したほうがよさそうです。artisanコマンドで生成されるクラスファイルは以下の場所になります。

vi app/Http/Controllers/JotaroController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class JotaroController extends Controller
{
        public function sigh()
        {
                return 'やれやれだぜ。';
        }
}

 

こんな感じに編集した後に、「set fileencoding=utf-8」をvi上で設定して、上書きします。ちなみにエンコードを確認するコマンドは「set fenc?」です。

次にルーティングを編集してあげます。

[hogeo@coresrv lalaproject]$ vi routes/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('/hello', function () {
    return 'hello! the world!';
});

Route::get('/sigh','JotaroController@sigh');

一番下の行を追加しました。第一引数にパス、第2引数にクラスのメソッド名という感じでしょうか。ちゃんとドキュメント読んでないので慣れてきたら読もうと思います。前回の/helloのルーティングは無名関数でメソッドを設定している感じですね。

編集が終わったら、ルーティングを通した「https://lala.jamjar.jp/sigh」を確認してみます。

うまくいきました。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です