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

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

2013-01-01から1年間の記事一覧

Bootstrapでtextareaの横幅を変更する

このサイト Twitter Bootstrap テキストエリアの横幅指定 - Dlog 隔離館 に書いてあったんだけど、Bootstrapでtextareaの横幅を変更するにはspanNを使うみたいね。Nには1~12の数字が入って、数字によって大きさが変わる。colsを指定してもダメなのか。 <textarea class="span4"></textarea> Lar…

LaravelでHTMLのエスケープ

LaravelでHTML特殊記号のエスケープというかエンティティをしたい場合は2種類ある。方法1:ヘルパー関数の「e」を使う………最短の関数だな。 $entities = e('<html>foo</html>'); 方法2:Blade側で中括弧を3重にする⇒{{{ }}} {{{ $html }}}ちなみに以下の二つは同じ結果になる…

Laravel専用のユーザ認証Confideを使ってみる

Webアプリケーション・フレームワーク用の認証パッケージはSentryが有名なんだけど、Laravel専用の認証パッケージConfide(カンファイド)というのもある。今回はConfideを使ってみる。 Zizaco/confide · GitHub インストール まずはConfideをインストールする…

Laravelのページネーションをさらにカスタムする

Laravelのページネーションは便利なんだけど、デフォルトだと以下みたいになる。 私の環境ではbootstrapテーマのbootswatchを使っているので、それに会わせたい。bootswatchの場合、ulタグのclassが「pagination」になるのだ。 ちょうどphp - How to impleme…

Laravelのページネーションを使う

Laravel4 日本語ドキュメントにはこんなことが書いてある。 他のフレームワークではペジネーションは苦痛に満ちています。Laravelでは簡単です 確かにすごく簡単だった。Eloquentにpaginate(数字)を指定するだけ!bootstrapと互換性を持たせているのも嬉しい…

配列を分割しながらループさせる

タグをMySQL上で改行区切りのテキストで記録した。どこかでテキストを改行で分割する必要がある。だからblade側でexplodeした。フレームワークって便利だねぇ。 @foreach (explode("\n",$title->tags) as $tag)<li><a href="{{ URL::to('tag/' . $tag) }}">{{ $tag }}</a></li>@endforeach

FORMのアクションに自作のメソッドを指定する

FORMのアクションに自作のメソッドを指定するとき、blade側はこれだけでいい。でも実行すると「form open Unknown action」というエラーメッセージが出る。 {{ Form::open(['action' => 'TitleController@release']) }}この場合はroute.phpにもメソッドを指…

takeメソッドの引数に数字以外を指定して全件取得する

データベースからの取得件数を指定するtakeメソッドだけど、数字じゃなくてallを指定すれば全件取得できる。例:2014年に一致する全データを取得する $take = 'all'; $titles = Title::where('year', '=', 2014)->take($take)->get(); もちろん$takeに数字を…

Blade上でメソッドを使う

フレームワーク初心者の私にとっては、Blade上でメソッドが動くだけで驚くものがある。例:ユーザ名を表示する {{ Auth::user()->username }} 例:blade構文に組み込む @if (Auth::user()->username === 'admin') <p>You Are Administrator.</p> @endif

Bootswatch上でjquery-uiが動作しない

Laravelで、BootstrapテーマのBootswatchとjquery-uiを同時に使うためには、最後にjquery-uiを読み込ます必要があるみたい。以下みたいに。jquery-uiを上のほうに持っていったら動かなかった。 {{ HTML::style('bootstrap/css/bootstrap.css') }} {{ HTML::s…

composer.jsonの中身

特に更新するネタも無いので私のLaravelのcomposer.jsonの中身です。laravel-ide-helper、phpunit、mockeryを足しただけです。あとアップデート時のコマンドとして「php artisan ide-helper:generate」も足してあります。 { "name": "laravel/laravel", "des…

Form::selectにスタイルシートのクラスを持たせる

LaravelのForm::selectにclass要素を持たせたいときは、4番目の引数に配列として渡す。3番目は初期値になる。Form::textareaとちょっと違うので注意。 {{ Form::select('size', ['0' => '0', '1' => '1'],null,['class'=>'form-control', 'id'=>'select']) }}

PerlのFIND::BINを使ってモジュール読み込み

需要は無いと思うけど、勝手にモジュールをインストールできない環境で一時的にでもモジュールを使いたいときはFIND::BINがある。 例えばperlスクリプトと同じディレクトリにtmplibを作り、その中にモジュールを置いた場合は以下のようになる。 use FindBin;…

Perlでautosplit.ixを生成する。

CPANを使わずに、Net::Telnet::Ciscoを読み込もうとしたら以下のようなエラーが出た。 Can't locate auto/Net/Telnet/Cisco/autosplit.ix in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at C:/Perl/lib/AutoLoader.pm line 181. at C:/Perl/lib/…

Laravelのスター数がCodeIgniterを超えた!

2週間前にフレームワークのGitHubスター数ランキングを作った。PHPフレームワークのベストテン!GitHubでスター数が多い順 - ふたりはララベル (Laravel PHP Framework)そのとき3位だったLaravelがCodeIgniterを抜いて2位になった。とはいえあくまでもスタ…

Cisco機器のIOSからpingを継続的に打つ

Cisco機器のIOSから継続的にpingを打つことはできない。拡張pingを使った場合は、pingが正常に通じるなら一瞬で終わってしまうし、pingが通じないならCtrl+Cが効かないままエラーとなるpingを打ち続ける。そこでperlを使って1秒ごとにpingを打つプログラムを…

Windowsへのperlモジュールのインストールが失敗する

Windowsへperlモジュールをインストールするときにppdファイルを使う。が、以下のようなメッセージが出て失敗することがある。 > ppm install NetSNMP.ppd ppm install failed: The PPD does not provide code to install for this platformこれはppdファイ…

Form::textareaにスタイルシートのクラスを持たせる

LaravelのForm::textareaやForm::textにclass要素を持たせたいときは、3番目の引数に配列として渡す。ちなみに2番目は初期値になる。ここでは適当にnullでも渡しておく。 {{ Form::textarea('description',null,['class'=>'form-control','rows'=3]) }} {{ F…

DBをEloquent上で結びつける

二つのテーブルがあって、それを結合のように繋げて情報を採取したいときがある。例えばtitleとcharacterという二つのテーブルがある。そのときcharacterを参照するだけで、自動的にtitleからマンガの名前を持って来たい。titleテーブル idname 1ONE PIECE 2…

Eloquentで上位10件を取得する

$comments = Comment::orderBy('id', 'DESC')->take(10)->get();

Laravelのクッキーをセットする

Laravelのクッキーは「Cookie::make」とやってもセットできない。ResponseにwithCookie()をつけて初めてセットできる。 $cookie = Cookie::make('testcookie', 'hello, world', 1); return Response::make($contents)->withCookie($cookie); withCookieはRed…

Laravelでランダムな文字列を生成する

Laravelでランダムな文字列が欲しいときはヘルパー関数を使う。 $string = str_random(40); var_dump($string); この結果は「string(40) "OBbjaakklfT511hmM72uwho5eTtqkDl7Gc6JO7TE" 」となる。

プロキシを越えてpearを使う

pearはプロキシが設定されていると使えない。そういう時はpearのconfigにプロキシのパスワードなどを設定すればよい。使うコマンドはpear config-setだ。 $ pear config-set http_proxy http://ユーザID:パスワード@プロキシ名:ポート番号こんな感じになるは…

Eloquentでcreateするときは割り当て許可が必要

Eloquentでcreateするときは保護が必要何も設定せずにEloquentでcreateするとエラーが出る。【コントローラ側】 Comment::create(array('year' => 2013)); 【エラーメッセージ】 Illuminate \ Database \ Eloquent \ MassAssignmentException yearEloquentで…

pearのパッケージのインストールが失敗する

pearのパッケージをインストールしようとして「No releases available for package」というエラーが出る場合は、キャッシュをクリアすれば成功することがある。 $ pear install phpdoc/phpDocumentor No releases available for package "pear.phpdoc.org/ph…

Net::Telnet::Ciscoでエラー

PerlのNet::Telnet::Ciscoモジュールを使うと、以下のエラーが出る時がある。 Last command and router error: 原因は「先頭の%」だ。例えばコマンドを間違えると以下のメッセージが出る。 % Unknown command or computer name, or unable to find computer …

EloquentでwhereRawを使う

Eloquentのwhereは複数条件が書けない。 $users = User::where('votes', '>', 100)->get();複数条件を書きたい場合はwhereRawを使う。SQL文のwhere句をそのまま書けばよい。 $users = User::whereRaw("votes > 100 and section = $section")->get();

PHPフレームワークのベストテン!GitHubでスター数が多い順

人気のあるプロジェクトの目安となるGitHubのスター数。2013/10/20のPHPフレームワークをスター数の順序で並べてみたよ。 1位Symfony7242 2位CodeIgniter6554 3位Laravel6443 4位Zend Framework24354 5位CakePHP4175 6位Yii3139 7位Slim Framework2867 8位Ph…

timestampを無効にする場合

Eloquentのtimestampは便利だけど、使わない場合は無効にしておかないと「updated_at」がありませんと怒られる。 SQLSTATE[42S22]: Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into `users` (`name`, `updated_at`, …

migrateのロールバックを有効にする

Xamppだとcomposerがいらなかったのでcomposerを入れてなかった。そのためcomposerが必要となるmigrateの動作が失敗してしまう。失敗するのはrollback、reset、refreshだ。 # php artisan migrate:reset {"error":{ "type":"Symfony\\Component\\Debug\\Exce…