Laravel の設定
さくらのレンタルサーバーに Laravel をインストールすることができたら、次は設定です。
①ルーティングを機能させる
②データベースマイグレーションする
③コントロールとビューを連携させる
の順番に解説していきます。
①ルーティングを機能させる
さくらのレンタルサーバーで、Laravel のルーティング設定を機能させるためには、
.htaccess の記述を変更する必要があります。
下記のファイルを編集してください。
[public/.htaccess]
<IfModule mod_rewrite.c>
// [以下を削除]
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
// ここまで
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
②データベースマイグレーションする
Laravel をデータベースに接続します。
下記のファイルを編集してください。
[.env]
DB_CONNECTION=mysql
DB_HOST=mysql[xxx].db.sakura.ne.jp
DB_PORT=3306
DB_DATABASE=[database_name]
DB_USERNAME=[user_name]
DB_PASSWORD=[password]
コマンドを打ちます。
php artisan migrate
③コントロールとビューを連携させる
簡単なアプリケーションを実装します。
a. ルーティングを設定します。
b. コントロールを追加して、ロジックを書きます。
c. ビューを用意して、コントロールからデータを受け取ります。
前提とする設定内容
[Laravel の編集ディレクトリ] = /home/[user_name]/www/[作業用ディレクトリ]
[Laravel のプロジェクトディレクトリ] = /home/[user_name]/www/[作業用ディレクトリ]/[Laravelプロジェクト]
[Laravel の公開ディレクトリ] = /home/[user_name]/www/[作業用ディレクトリ]/[Laravelプロジェクト]/public/ ・・・ welcome画面が見られるディレクトリのこと
以下、hogehoge という名前の機能を実装する例示
[作成するアプリケーションのルーティング] = http://[your_domain]/[作業用ディレクトリ]/[Laravelプロジェクト]/public/[hogehoge]/index/{id}/ ・・・{id}は、パラメータ変数。アドレスバーに入れた URL の id によって、表示が変わる。
[作成するアプリケーションのコントローラー] = [hogehoge]Controller.php というファイル。
[作成するアプリケーションのビュー] = [hogehoge].blade.php というファイル。
[利用するデータベースのテーブル名] = table_name
[利用するデータベースのカラム名] = column_name
[コントローラーとビューの間の受け渡し変数] = msg
a. ルーティングを設定します。
URL を叩いた時に、実際に呼ばれるメソッドを紐づけています。
下記のファイルを編集してください。
[routes/web.php]
use Illuminate\Support\Facades\Route;
// [以下を追加]
use App\Http\Controllers\[hogehoge]Controller;
// ここまで
/*
|--------------------------------------------------------------------------
| 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('[hogehoge]]/index/{id}', [[hogehoge]Controller::class, 'index']);
// ここまで
// ここでは、[hogehoge]]/index/{id} を叩くと、[hogehoge]Controller.php に記述されたクラスの index メソッドが呼ばれることを定義している。
b. コントロールを追加して、ロジックを書きます。
[hogehoge]Controller.php を追加して、ロジックを書きます。
コマンドを叩くと自動的に作ってくれます。
php artisan make:controller [hogehoge]
下記で、table_name のテーブルのデータをごっそり持ってきます。
$items = \DB::table('[table_name]')->get();
下記で、データリーダーから特定のカラムにアクセスることができます。
$item->[column_name]
下記のファイルを編集してください。
[app/Http/Controllers]
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class lesson_coachController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($id)
{
// [ここから追加]
$items = \DB::table('[table_name]')->get();
$name;
foreach ($items as $item)
{
$name = $name . $item->[column_name] . '
';
}
$param = ['msg' => 'Hello koneko koneko' . $id . $name];
return view('lesson_coach', $param);
// ここまで
}
}
c. ビューを用意して、コントロールからデータを受け取ります。
views ディレクトリ内に、welcome.blade.php というファイルがあります。
まず、このファイルのコピーを作ってください。そして、名前を変更します。[hogehoge].blade.php です。
そして、下記のように編集します。
{{ $msg }} を追記するだけです。
body 内は、ごっそり削って、追記する文だけを書きました。見やすくなるのでそっちのほうがいいと思います。
下記のファイルを編集してください。
[[hogehoge].blade.php]
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1>
<title>Laravel</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">
</head>
<body class="antialiased">
// [以下を追加]
{{ $msg }}
// ここまで
</body>
</html>