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

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

Laravel

Image source not readableの対処

大きな画像を送って「Image source not readable」が出た場合はphp.iniの「upload_max_filesize」の値を大きくすれば対処できる。

Requestに値を入れてテストする

コントローラーをテストする時にRequestの変数に値を入れる。 $request = new Request; $request->merge([ 'name' => 'testname', ]); $controller = new \Lb\Http\Controllers\TitleController($request); $controller->update($request, 100); $title = Ti…

Laravelのmigrate:resetで外部キーエラー

Laravelで php artisan migrate:resetしたら、以下のエラーが出た。外部キー関連のエラー。 SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or upda te a parent row: a foreign key constraint fails (SQL: drop table if exists `t…

Laravelのログインをメールアドレス以外にする

AuthControllerに「protected $username = 'name';」を足す。

XserverにLaravelを置くときの.htaccess

<IfModule mod_rewrite.c> suPHP_ConfigPath /home/MyServerName/MyDomain/xserver_php/ AddHandler x-httpd-php5.5 .php .phps AddHandler fcgid-script .php .phps FCGIWrapper "/home/MyServerName/MyDomain/xserver_php/php-cgi -c /home/MyServerName/MyDomain/xserver_php/php.</ifmodule>…

Laravelでファイルダウンロード1

Laravelでファイルをダウンロードしたときのメモ。 public function export() { $tables = Table::all(); $filename = 'downloadfile.csv'; $handle = fopen($filename, 'w+'); fputcsv($handle, array('created at')); foreach ($tables as $row) { fputcsv…

Laravelで印刷専用のスタイルシートを指定する

Laravelで印刷専用のスタイルシートを指定するには、配列の引数を渡す。 {{ HTML::style('charisma/css/fullcalendar.print.css',['media'=>'print']) }}

ファイル位置のメモ

Workbenchからローカルファイルを開こうとしたんだけど、カレントディレクトリはどこになるのだろう?と思ったら、トップディレクトリだった。 public function fire() { dd(file_get_contents('composer.json')); }

laravel-formatterの使い方

Json、XML、CSVファイルとの相互変換が可能なlaravel-formatterがある。インストールはcomposer.jsonに "require": { "soapbox/laravel-formatter": "dev-master" }と記述してcomposer update。 次にapp.phpのservicepropiderに 'SoapBox\Formatter\Formatte…

自作したworkbenchのcontrollerが見つからない

workbenchでパッケージを自作したときに、パッケージ内のcontrollerが見つからずnot foundのエラーが表示される。 これはcomposer.jsonファイルに以下を追記すれば大丈夫。 "autoload": { "classmap": [ "src/controllers" ],これでdump-autoloadすればcontr…

Laravelとシンボリックリンク

Laravelで開発するときは、publicフォルダにシンボリックリンクを貼るとよい。 Windowsの場合 mklink /D シンボリックリンク名 既存のLaravelのフォルダ C:\>mklink /D "C:\xampp\htdocs\futari" "C:\xampp\files\futari\public"パスは必ずフルパスにするこ…

CreateとEditで同じBladeのFormを使う

php - Laravel use same form for create and edit - Stack Overflow 上記に書いてあった方法だけど、@if(isset($user))で分岐させればいいのか。私は共通部品だけ別ファイルで抽出して@includeさせていた。それとリンク先に書いてあったInput::old()という…

MassAssignmentExceptionエラーと_token

MassAssignmentExceptionと_token。この二つが表示されるエラーが出たらほぼ確実にEloquentの保護設定忘れ。セキュリティ的にはまったく推奨されていないけどEloquentに protected $guarded = [];の一行を入れれば解決する。セキュリティ的には解決しないけ…

Laravelの自作WorkbenchでConfigを使う

Laravelの自作Workbenchで自作でConfigを使うのは、本当にそのままで出来る。 「workbench/vendorname/packagename/src/config」内にfilename.phpを置く。filename.phpの中身は以下のとおり。 [ 'laravel' => 'ララベル', ], ); この値を表示するのは以下の…

Form::textにautofocusを設定する方法

Form::textにautofocusを設定する方法は以下のとおり。 Form::text('username',null,['autofocus'=>'autofocus'])

whereHasを使う

単なるメモです。 $title = new Title(); $titles = $title::whereHas('user', function($q) use ($where) { $q->whereRaw($where); })->get();

Sentryでパスワードが一致しているか確認する

Sentryでパスワードが一致しているか確認するときはcheckPassword()メソッドを使う。 詳しくはSentryのマニュアルで。Sentry Manual :: Cartalyst

ErrorException: Constant already definedが出る

LaravelでPHPunitを使うと ErrorException: Constant AWK already definedというメッセージが出る。自作した定数値設定ファイルのconstants.phpを二重読み込みしているみたい。他に解決作ありそうだけどとりあえず require_once 'constants.php';で回避した。

Laravelのペジネーションを改造する

オフィシャルで薦められている方法でやってみた。これはLaravel4.2のやり方。CharismaPresenter.phpを作ってみて、中身は以下のとおり。 <a>'.$text.'</a></li>'; } public function getDisabledTextWrapper($text) { r…

Laravel-Excelが上手く動かない

Laravel-Excelが正常にエクセルファイルを読み込んでくれなかったけど、エクセルの見出し行の読み込みが怪しかったので、vendor\maatwebsite\excel\src\config\import.phpのheadingをfalseにしたら動いた。

Laravelのソースコードチェック

Laravelのソースコードチェックを簡単にできるlarasnifferが便利だった。composer.json使ってインストール。 "leroy-merlin-br/larasniffer": "dev-master"config/app.phpにサービスプロバイダーを追加する。 'LeroyMerlin\LaraSniffer\ServiceProvider',art…

Eloquentでテーブルの別名を設定する

Eloquentでテーブルの別名を設定する場合。 class SentryGroup extends Eloquent { protected $table = auth_groups'; public $timestamps = false; protected $guarded = ['id']; }

DB::tableではtoArrayが使えない

リンク先に書いてあるけどDB::tableではtoArrayが使えない。Eloquentを使うしかない。 DB query builder toArray() laravel 4 - Stack Overflow

Laravelでエラーメッセージの一例

やり方は色々あるけどとりあえず、app\global.phpに下記を追加した。エラーが発生したらTOP画面に遷移する。 App::error(function(Illuminate\Database\Eloquent\ModelNotFoundException $exception) { Log::error($exception); $message = $exception->getM…

Laravelでペジネーションとgetを同時に使う

getメソッドは欲しい要素だけを手に入れることができる。 $titles = Title::get(['id', 'title']);これをペジネーションと組み合わせたい時は $titles = Title::paginate(10);第2引数に配列を渡す。 $titles = Title::paginate(10,['id', 'title']);

Laravelのキャッシュクリア

Laravelのキャッシュクリアコマンド。 php artisan cache:clear

ララベルな女性たち

フレームワークの名前の「Laravel」だけど、「ララベル」っていうと魔法少女アニメの影響もあってか女性的なイメージがある。そもそも「ララ」も「ベル」も女性っぽい響きだ。Laravelに似た発音で画像検索してみた。ふくよかな体型したモデルのLala Belleさ…

自作コマンドのオプション取得方法

php artisan awk:shodoku -dというオプションを設定したい場合は以下のようにする。 /** * Get the console command options. * * @return array */ protected function getOptions() { return array( array('drop', 'd', InputOption::VALUE_NONE, 'An exam…

URLのクエスチョンマーク以降を取得する

例えば http://laravel/?query=wordの「word」を取得したい場合はInput::get('query')で取れる。これを使って検索ボックスを作るときは以下のようになる。 <input placeholder="Search" class="search-query span2" name="query" type="text" value="{{ Input::get('query')}}">

Laravel4.2で危険なコマンドが対話式になった

Laravel4.2を使ってみたけど、一番良いのはmigrateコマンドが対話式になったことだな。うっかり危険なコマンドを実行するのを避けられる。 C:\xampp\fireant>php artisan migrate ************************************** * Application In Production! * **…