ちょっとしたLaravelメモ

f:id:utr066:20180321111851j:plain

Laravelのメモが見つかったので、ちょっと書いておこう。 Laravel懐かしいなあ。サービスプロバイダーとか最初意味わからなかったわ。

使うためには色々必要

laravelはライブラリをcomposerインストールしただけでは使えない。 providersやaliasに追加しないといけない。さらにコントローラーで使う場合には、最初の方にuseで指定しなければならない。 redirectとかも必要だから、なんかうまくいかないなあと思ったら確かめてみるといいかも。

use Activation;
use Mail;
use Sentinel;
use App\User;
use App\Http\Controllers\Controller;
use App\Notifications\RegisterNotify;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;

こんな感じになる。ORMでモデルを使う場合にもモデルの読み込みが必要。めんどい。

providers

サービスプロバイダーを利用して初期起動処理を行っている。 config/app.phpファイルのproviders配列がlaravelプロジェクトのためにロードされる。

  1. Laravelのコアサービスのサービスプロバイダー
  2. アプリケーション固有のサービスプロバイダー
  3. 自分で、Composerを使って追加したパッケージのサービスプロバイダー

これらがあるらしい。

middleware

状態をチェックするものらしい。アクションの前後に実行される。 例えば、ユーザーがログインしているかどうかなどの際に役立つ。

ユーザーが認証されていなければ、このミドルウェアはユーザーをログインページへリダイレクトします。反対にそのユーザーが認証済みであれば、そのリクエストがアプリケーションのその先へ進むことを許可します。

deviseでいうauthenticate_user!みたいなことをやってくれるみたい。laravelではそれをmiddlewareっていうのが担っているのかな。

変数の受け渡し

変数を一つ受け渡す場合はcompact関数又はwithメソッドで送信。
compactの方が可読性が高いのでそちらを使うことが多い。変数受け渡す記述わざわざしないといけないのか、めんどい。 compact関数の場合

testController.php
public function test() {

    $test_1 = "テスト";

    return view('test.normal',compact('test_1'));
}

withメソッドの場合

testController.php
public function test() {

    $test_1 = "テスト";

    return view('test.normal')->with('test_1',$test_1);

レコード作成

laravelでは簡単にレコード作成を許してくれない。 ①該当のモデルファイルに書き込むカラムを宣言する。これがないと値入らない。

    protected $fillable = [
        'name',
        'user_id',
    ];

②コントローラーの上の方に使うモデルを読み込む

use App\Upload;
use App\User;

③createメソッドでレコードを作成する。

  Upload::create([
    'name' => $filename,
    'user_id' => Auth::user()->id,
  ]);

ちょっとめんどい。

phpはデフォルトで2MBまでのアップロードしか許していないらしい

phpはデフォルトで2MB以上のファイルがアップロードできないみたいです。

いくらファイルアップロードの設定変更してもうまくいかないのはこれか・・・

public以下を読み込む設定になっている

Laravelはpublic以下のファイルを読み込むようになっている。 つまり、パスの指定はpublic以下から指定する。cssやjsの読み込み。

viewでphpを使う

viewでphpのロジックを記述する際は@を使って書くことができる。ifとか。

  @foreach($all_uploaded_files as $file)
        {{$file->user->name}}
  @endforeach

変数の展開は{{}}で行う。

【GoogleAppEngineチュートリアル】rubyでHello world!を表示させる

GoogleAppEngineを使えば楽にアプリケーションをネット上に公開することができるのだろうか。 かなり前に同じPaasのHerokuを使ってアップしたことがあるけど、デプロイ自体は難しくはなかった気がする。なんかBootstrapがうまく反映されなくて苦戦した覚えはある。

今回は、GoogleAppEngineを使うと簡単にアプリケーションを公開することができるのかどうかを確かめたい。 簡単だったらいいなあ。とりあえず、チュートリアルをやってみる。

続きを読む

【Ruby】何でもかんでも後置ifを使えばいいっていう訳ではない、自分は果たしてちゃんと理解して使っているのだろうか・・・

Rubyでは後置ifというif文をワンライナーで書くことができるものが存在します。

hoge = “hogehoge” If false

みたいなやつですね。

後置ifはすごい便利で、短いときには全部後置ifにしてやるざヒャッハーとなるけど、ちょっと待ってほしい。

続きを読む

ワードプレスのサイトをfacebook広告で配信してみる

果たしてfacebookの広告にどの程度効果があるのか知りたくなったので、実際に試してみたいと思う。 弱小サイトならワードプレスでいくつか持っているので、そのうち一つを使って出稿してみようかと。

続きを読む

【laravel】sentinelを使ってユーザー認証するチェックポイントを作成

laravelでsentinelというユーザー管理・権限管理をするためのライブラリを使いました。

ユーザーのactiveフラグが立っているものだけログインさせたい。 その際にcheckpointを新たに作ったのでメモ。

続きを読む

atomにveda入れてイケイケなエディタにする

AtomでVJできるパッケージを作った #GLSL #livecoding - マルシテイア

これが面白そうだったので、ちょっとやってみる。 だいぶカラフルな躍動感のある画面にできるっぽい。

続きを読む