ラベル Laravel の投稿を表示しています。 すべての投稿を表示
ラベル Laravel の投稿を表示しています。 すべての投稿を表示

2015年10月10日土曜日

Laravel Homesteadでnpm install

Laravel Homesteadでnpm install

Windows環境では共有フォルダ周りでシンボリックリンクと260文字制限が原因によるエラーが発生する模様。

シンボリックリンク対策

デフォルトではシンボリックリンクの作成ができないのでシンボリックリンクの作成を有効にする。

Windowsの設定

cmd.exeを管理者として実行して設定状況を確認。

C:\Windows\system32>fsutil behavior query symlinkevaluation
ローカルからローカルへのシンボリック リンクは有効です。
ローカルからリモートへのシンボリック リンクは有効です。
リモートからローカルへのシンボリック リンクは無効です。
リモートからリモートへのシンボリック リンクは無効です。

有効にする。

fsutil behavior set symlinkevaluation r2r:1 r2l:1

確認。

C:\Windows\system32>fsutil behavior query symlinkevaluation
ローカルからローカルへのシンボリック リンクは有効です。
ローカルからリモートへのシンボリック リンクは有効です。
リモートからローカルへのシンボリック リンクは有効です。
リモートからリモートへのシンボリック リンクは有効です。

VirtualBoxの設定

Homestead/scriptsのhomestead.rbを編集する。

    # Configure A Few VirtualBox Settings
config.vm.provider "virtualbox" do |vb|
  vb.name = settings["name"] ||= "homestead"
  vb.customize ["modifyvm", :id, "--memory", settings["memory"] ||= "2048"]
  vb.customize ["modifyvm", :id, "--cpus", settings["cpus"] ||= "1"]
  vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
  vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  vb.customize ["modifyvm", :id, "--ostype", "Ubuntu_64"]

  # 追加
  vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]

なお、シェル(Git Bashなど)は管理者権限で実行すること。

260文字制限対策

node_modulesがホストOS(Windows)のMAX_PATH(260文字)を超えてしまうのでゲストOS(Ubuntu)で対策する。

~/Code以下が共有となのでそれ以外の適当なフォルダにnode_modulesを作りln -s でシンボリックリンクを作る。

Written with StackEdit.

2015年8月3日月曜日

Class not found

Laravel Excelでエラー

Maatwebsite\Excel\ExcelServiceProvider not found

オフィシャルの手順通りインストール&設定するも上記のエラーが発生

解決

composer dump-autoload

を忘れていた

composer.jsonを編集したら忘れずに実行しよう

2015年7月11日土曜日

Laravel Debugbarが表示されない

Laravel Debugbarが表示されない

4.2のプログラムを5.1にアップグレード。

アップグレードガイドの通りに作業する。

しかし、Laravel Debugbarが表示されない。
5.xのバージョンなので問題はないはず。

ルーティングを修正

Chromeのコンソールにエラーが出ているのを発見。
どうやらDebugbar用のcssとjsがロードできてない様子。

いろいろ試した結果routes.phpの

Route::controller('/', 'HogeController');

が原因と判明。

修正すると無事表示された。

2015年2月9日月曜日

2015年1月19日月曜日

Intervention Image

いつものようにcomposerでインストールするも GDがないと怒られる
apt-get install php5-gd

AWS Service Provider for Laravel 4

インストールで躓いたのでメモ 手順通りに進めるもcurlがないと怒られる。
apt-get install php5-curl
でインストール。
composer update
でOK。

2014年12月23日火曜日

コレクションのソート

作成日時順にソート
$collection->sortBy('created_at');
降順なら
$collection->sortByDesc('created_at');

グループ化して文字列の連結

MySQLの関数GROUP_CONCATを使う。
GROUP_CONCAT(tags.name)
でカンマ区切りの文字列になる。 Laravelでは
DB::raw('GROUP_CONCAT(tags.name) as tag_name')
でOK。 カラムの一部でも可能。
Model::select(['id', DB::raw('GROUP_CONCAT(tags.name) as tag_name')])

2014年12月11日木曜日

2014年12月6日土曜日

whereRawの使い方

whereRaw("date_format(created_at, '%Y-%m') = ?", [$dt->format('Y-m')])
2つ目の引数にバインドするデータを配列で渡す。

2014年12月4日木曜日

マイグレーションに失敗

外部キーを設定したマイグレーションに失敗。 原因は親キー(id)がunsignedになっていなかったこと。

2014年11月14日金曜日

環境をlocalに設定

app\bootstrap\start.phpを編集。
$env = $app->detectEnvironment(array(
    'local' => array('homestead', 'host名'),
        ));

php artisan env
で確認。

2014年11月1日土曜日

グループ化して件数の多い順にソート

Laravelのクエリービルダーで
groupBy('hoge')->orderBy('count(*) desc')
としてもエラーになるので
groupBy('hoge')->orderByRaw('count(*) desc')
を使う。

2014年10月12日日曜日

Laravelのコレクション

lists

selectに渡す配列を生成。

$users = User::all()->lists('name', 'id');

idをキーとした配列ができる。

laravel-dompdfで日本語表示

composerを使ってインストールは問題なく終了。

$pdf = App::make('dompdf');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();

テスト表示もOK。

日本語フォントはTakaoゴシックを採用。 dompdfのload_font.phpを使ってフォントをインストール。
$ php load_font.php TakaoExGothic TakaoExGothic.ttf
しかし、エラーが発生。php-font-libが見つからないとのことなので
$ln -s /var/www/laravel/vendor/phenx/php-font-lib/classes/ classes
シンボリックリンクを作って対処。 今度はエラーなく終了して、フォントのインストールに成功。 さっそく日本語を含むPDFの作成を試みるも日本語が表示されない。 もちろん

は追加済み。 その後、しばらく悩むが原因が判明。 laravel-dompdfは
app/storage/
にフォントを置く必要があるようだ。 同様に
$ln -s /var/www/laravel/vendor/dompdf/dompdf/lib/fonts/ fonts
シンボリックリンクを作り、再度PDFを作ると日本語が表示された。