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

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

2013-11-01から1ヶ月間の記事一覧

自作のパッケージ内でEloquentを使う

自作のパッケージ内、または名前空間内でEloquentを使う場合は名前空間を指定する。単に「\」をつけるだけ。 $titles = \Title::get();

よくあるエラー「getResults() on a non-object」

Call to a member function getResults() on a non-object主にボケミスしたときに出てくるメッセージ。例えば「$user->save()」のつもりが「$user->save」とやってしまったときに、このメッセージが出てくる。

レンタルサーバにComposerをインストールする

さくらのレンタルサーバにComposerをインストールしてみた。1手順で終わった。まずはアカウントディレクトリ直下に移動し、composer.pharをダウンロードします。 %curl -sS https://getcomposer.org/installer | php #!/usr/bin/env php All settings correc…

Laravel初心者じゃなくてフレームワーク初心者

Laravelを使っている人のほとんどが他のフレームワーク使いから転向してきた人で、初めてのフレームワークがLaravelです!完全な初心者です!Wordpressと何が違うんですか?という人は私くらいなものだろう。Laravelに関する情報を検索すると、みんな難しい…

Laravelではページのタイトルをどうつければいいか?

例えば「無題のドキュメント」というタイトルをつけたいとして…。 方法1:Blade上にタイトルを書く 以下のようにBladeを設定する。 @extends('layout.default') @section('title') 無題のドキュメント @stop @section('content') <p>Hello World.</p> @stop layout…

ページネーションをシンプルに作り替える

この画像みたいなシンプルなページネーションがやりたい。 でも作り方がわからなかったので直接 「vendor\laravel\framework\src\Illuminate\Pagination\BootstrapPresenter.php」を編集するという荒業を使った。まずはview.phpを編集した後にslider.phpを自…

LaravelのEloquentで特定のカラムだけを取得したい

SQL文で言うところの select `name`,`address` from title; をLaravelのEloquentで実現したい場合は、getメソッドを使う。引数が配列になることに注意。Eloquentの結果をただの配列にするtoArrayも併用すると便利。 $titles = Title::get(['name','address']…

LaravelのEloquentでLIKEを使う

LaravelのEloquentでSQL文のLIKE演算子を使いたい場合は、whereの第2引数をLIKEにすればよい。 $titles = Title::where('tags', 'LIKE', "%$tagname\n%")->get()

Bootstrapでスマホだけコンテンツを隠したい

PCでは便利なブラウザ上の情報でも、スマホからアクセスする時は非表示にしたい。Bootstrap3ではclassにhidden-smを指定すると消せられる………はずなんだけど消えなかった。 <div class="panel panel-primary hidden-sm"> 試しにhidden-lgを指定したらPCブラウザ上ではちゃんと消えた。 <div class="panel panel-primary hidden-lg"> そこでvisible-lg</div></div>…

さくらのレンタルサーバでcheckboxの名前が数字だと取得できない

さくらのレンタルサーバで、inputタグのcheckboxのnameが数字だと取得できない。さくら以外の環境だと大丈夫なんだけど。どういう現象なんだろう?これだと値がサーバ側にいかない。 <input type="checkbox" name="1878" value="1"> チェック これだと大丈夫。 <input type="checkbox" name="A1878" value="1"> チェック

Formのインプットに隠し属性を持たせる

Formのinputにhidden属性を持たせたいときは、Form::hiddenを使う。 {{ Form::hidden('phone', '090-555-12345') }以下のように出力される。 <input name="phone" type="hidden" value="090-555-12345">

Laravelのチェックボックスやラジオボタンを記入済みにする

Laravelのチェックボックスやラジオボタンを記入済みにするとき三番目の引数にtrueと書けばよい。 echo Form::checkbox('name', 'value', true); echo Form::radio('name', 'value', true);

ComposerをWindowsに手動インストール

とりあえずWindowsインストーラを使う ComposerのサイトからダウンロードしたWindows用の「Composer-Setup.exe」を使えば終わりです。これより下はそれでも上手くいかなかった人向けです。ちなみに「Composer-Setup.exe」はcomposer.batを自動的に置いてくれ…

Eloquent上でバリデーションを設定する

Laravelのバリデーション(入力値の検証)は大変便利という評判だけど、公式ドキュメント上だとコントローラー側でバリデーションする例が書いてある。それよりもEloquent上でバリデーションしたい。Eloquentの中にvalidateメソッドを作ってみた。 class Use…

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を打つプログラムを…