ふたりはララベル (Laravel PHP Framework)

PHPフレームワークのLaravelの体験記を書いていきます。こんなタイトルのブログですが萌え系アニメは一秒たりとも観たことがありません。

Laravel4

Laravelでファイルを生成せずにファイルダウンロード

Laravelでファイルを生成せずにファイルダウンロードしたときのメモ $stream = fopen('php://temp', 'w'); foreach (Title::all() as $title) { fputcsv($stream, $title->toArray()); } rewind($stream); $csv = mb_convert_encoding(str_replace(PHP_EOL, …

Laravelでパッケージ用のConfigをコピーする

Laravelでパッケージを使う場合には、Configをコピーしてから使う。オリジナルのConfigはcomposer updateのたびにデフォルトに戻るからだ。 「config:publish ベンダ名/パッケージ名」でConfigがapp/config/packagesにコピーされる。 >php artisan config:pu…

Windowsでlaravel/installerを使ってみる

一応メモを残すけどlaravel/installerは不便だった。「composer create-project」のほうが便利。Windowsだと「laravel new」が失敗する。 > composer global require "laravel/installer=~1.1" Changed current directory to C:/Users/futari/AppData/Roamin…

Form::openでメソッドを指定する

Form::openで直接メソッドを指定する。 {{ Form::open(['action' => ['UserController@change', $user->id]]) }} {{ Form::close() }}これにはroute.phpへの記述も必要。 Route::post('user/change', 'UserController@change');

エクセルで作成したCSVファイルをLaravelに読み込み

Excelで作成したCSVファイルをLaravelに読み込んでみた。 $buf = mb_convert_encoding(file_get_contents( Input::file('csv')->getRealPath()), 'utf-8', 'sjis-win'); $lines = explode("\n", $buf); array_pop($lines); array_shift($lines); 最後のarray…

Laravelで自作メソッドにidを渡す

Laravel4で自作メソッドにidを渡す。 Viewの書き方 {{ Form::open(['action' => ['JisakuController@insert',$jisaku->id]) }} routes.phpの書き方 Route::post('jisakus/{id}/insert', 'JisakuController@insert') コントローラーの書き方 public function …

LaravelのSentryでattributeのエラー

LaravelのSentryで以下のエラーが出た。 The [login] attribute is required原因はlogin_attributeの設定を間違えていたことだった。 'login_attribute' => 'email',

Laravelで定数を使う

前も書いた気がするけど、例として「constants.php」を「app/start」内に置く。 #app/start/constants.php

Sentryでnone givenのエラーが出る

LaravelのSeederを使ってSentry用のユーザを一気に追加しようとしたら、以下のエラーメッセージが出た。 [Cartalyst\Sentry\Users\LoginRequiredException] A login is required for a user, none given.そのときのSeederはこちら。

migrateにどうしても失敗する

migrateにどうしても失敗する場合がある。以下みたいなメッセージ。 php artisan migrate Do you really wish to run this command? yes {"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException", "message":"Class 'CreateUsersTabl…

Laravelの自作コマンドで引数を取得する

自作コマンドを作成してみた。 php artisan command:make testFutari --command=test:futari 上記コマンドで生成されたソースにfire()とgetArguments()とgetOptions()の中身を追記した。

Laravelでデータを削除するときのForm文

Laravelでデータを削除するときのForm::openの書き方 {{ Form::open([ 'route' => ['comments.destroy',$comment->id], 'method' => 'delete', 'class'=>'form-horizontal' ]) }} <p><button type="submit" class="btn-u btn-u-blue">DELETE</button></p> {{ Form::close() }}

LaravelのEloquentでwhereInを使う

LaravelのEloquentでwhereInを使う。例えば4つのIDから最小の値段を取得する場合。 $nedan = Title::whereIn('id',[10,11,12,13])->min('nedan');

Laravelのソース内でArtisanコマンドを使う

Laravelのソース内でArtisanコマンドを使う。 Artisan::call('mybench:mycommand');引数付きで使う例。 Artisan::call('mybench:mycommand', ['year' => 2014]);引数付きで使う場合、自作コマンド側の引数受け取り部分はこうなる。 /** * Get the console co…

Laravelでラジオボックス

Laravelでラジオボックスの情報を取得したときのメモ。Blade側 @foreach($comments as $comment) <div class="inline-group"> <label class="radio"> <input type="radio" name="priority_{{ $comment->id }}" value='abc'> <i class="rounded-x"></i>abc </label> <label class="radio"> </label></div>

LaravelのEloquentで複数条件を指定する

Eloquentのwhereメソッドは重ねることもできる。 Title::where('type', '=', $type)->where('rank', '>', '100')->get();「orWhere」というのもある。 Title::where('type', '=', $type)->orWhere('rank', '>', '100')->get();

Eloquentを使ってfindの前後を取得する

Eloquentを使ってfindの前後を取得するテクニックがあった。 How to get previous / next records in DB with Eloquent. (Page 1) / Laravel 3.x Code Samples / Laravel Forumsなるほど、モデルにそういうメソッドを追加すればいいのか。idだったら上記のテ…

LaravelのEloquentでID値が指定できない

下記のようにidを指定してcreate()しても、指定した数ではなくて通番になっていた。 $name = Name::find(4); Title::create(['id' => $name->id])モデル上でidを保護しているのが原因だった。

さくらのレンタルサーバにLaravel4.2をインストール

以前にも似たエントリ書きました。 さくらのレンタルサーバにLaravelをインストール - ふたりはララベル (Laravel PHP Framework) 以前との違いは Laravel 4.2 が対象。 publicを移動せずにシンボリックリンクを貼る。 です。 インストールディレクトリを…

LaravelのEloquentでテーブルを消去する

LaravelのEloquentからtruncateも実行できる。 Mymodel::truncate();

LaravelのWorkbenchでdb:seedを実行する

LaravelのWorkbench内にSeederを作ってdb:seedしたい。まず以下のフォルダを作る。 workbench\your_vendor_name\your_package_name\src\database\seedsseedsフォルダ内で普通にSeederを作る。ちなみに以下の例ではFakerを使ってSeederを作ってみた。

Laravelでworkbenchのconfigをコピーする

Laravelでパッケージのconfigをコピーするときはconfig:publishを使う。 # php artisan config:publish vendor/packageしかし自作パッケージの場合は失敗する # php artisan config:publish myvendor/mypackage [InvalidArgumentException] Configuration no…

OctoberCMSをインストールしてみた

Wordpressに飽きてきたので、OctoberCMSをインストールしてみた。install.phpを使うとインストール前チェックでエラーが出るので、Composerを使ってインストールしたら成功した。下記ページの「Composerによるコマンドラインからのインストール」に従えば出…

LaravelでConfigから値を取りだす

Config内で連想配列を使った場合、キーを指定すれば値を取りだすことができる。 Config::get('myconfigfile.array')['mykey']Blade上でループも可能だ。 @foreach(Config::get('myconfigfile.array') as $key => $value) {{ $value }} @endforeach()

League/CsvをLaravelで使う

PHPでCSVを扱うパッケージの「League/Csv」をLaravelで使用してみた。 インストール composer.jsonのrequireに以下を追記して、composer updateする。 "league/csv": "~6.0" CSVを読み込む タブ区切りのCSVファイルを読み込んでみた。

Eloquentでmaxを使う

めっちゃ簡単だった。 Title::max('vote');

Laravelでis not nullを使う

LaravelのEloquentでは Title::where('year','is not',null)->get();という書き方はうまく動作しない。 Title::whereNotNull('year')->get();が正しい。

Sentryでログインユーザ情報を取得する

Sentryでログインユーザ情報を取得するには、getUserメソッドを使えばよい。 $user = Sentry::getUser();値を直接取得することもできる。 $id = Sentry::getUser()->id;

Form::modelでエラーが発生する

Form::modelでMethodNotAllowedHttpExceptionのエラーが発生する場合は、methodの設定間違いの可能性がある。「'method' => 'PUT'」を足したら直った。 {{ Form::model( $task, ['route' => ['tasks.update', $task->id], 'role'=>'form', 'method' => 'PUT'…

Sentryでconfig設定忘れでエラー

Sentryでconfigのコピーを忘れていると以下のようなエラーがでる。 Array to string conversion以下のコマンドを打てばconfigがコピーされる。 php artisan config:publish cartalyst/sentry