Excelの書式を全て削除するマクロ
Excelで書式が増えすぎた場合は手で削除するのはムリ。マクロで一気に消しましょう。
Sub Excelの書式を全て削除() Dim myStyle As style On Error Resume Next For Each myStyle In ActiveWorkbook.Styles If Not myStyle.BuiltIn Then myStyle.Delete End If Next End Sub
PHPがThread Safeなのか?x86なのか64なのか?
こうすりゃわかるのか。
>php -i|find "Thread Safety" Thread Safety => enabled >php -i|find "Architecture" Architecture => x86
humhubをWindowsにインストールする
PHPのSNS、どれを使うか悩んでいる。OXWALLは実際に運用したけど、すごく使いにくかった。Minds、Movimもイマイチ。Elggはバージョン3が中々出ない。というわけでhumhubにチャレンジ。Yiiフレームワークはあまり好きじゃないんだが…。
バージョンの注意事項
humhub 1.2以前はPHP7.2では動作しないので注意。PHPのバージョンを下げるか、humhub 1.3以降を使う。
ダウンロード
composer-asset-pluginをインストール
D:\xampp\source\humhub>composer global require "fxp/composer-asset-plugin:^1.2.0" Changed current directory to C:/Users/AppData/Roaming/Composer./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 1 install, 0 updates, 0 removals - Installing fxp/composer-asset-plugin (v1.4.2): Downloading (100%) Writing lock file Generating autoload files
このあとcomposer Update。時間はかなりかかる。
LaravelでPHPUnitを使ってNo tests executed!
Laravel5.4でPHPUnit6を使ったときに「No tests executed!」が出る。Laravel5.4はPhpunit6に対応していないので、vendor内にあるphpunitを使うと解決できる。
php vendor\phpunit\phpunit\phpunit
Image source not readableの対処
大きな画像を送って「Image source not readable」が出た場合はphp.iniの「upload_max_filesize」の値を大きくすれば対処できる。
storeとupdateで共通で使えるバリデーション
storeとupdateでバリデーションを共通化したいけど、updateの時だけユニークチェックしたい。という時の書き方。あまりキレイじゃないね。。。
public function valid() { $validator = \Validator::make($this->toArray(), [ 'code' => 'required|max:255', ]); if ($this->id && !$validator->fails()) { $validator = \Validator::make($this->toArray(), [ 'code' => 'unique:titles,code,' . $this->id ]); } return $validator; }
Requestに値を入れてテストする
コントローラーをテストする時にRequestの変数に値を入れる。
$request = new Request; $request->merge([ 'name' => 'testname', ]); $controller = new \Lb\Http\Controllers\TitleController($request); $controller->update($request, 100); $title = Title::find(100); $this->assertEquals($title->name, 'testname');
長くなったLaravelのModelを分割
長くなったLaravelのModelを分割する方法の一つとして、私は上位モデルを使うときがある。
Titleモデルのうち、Updateに関する機能を独立させるときはこんな感じ。テーブル名を指定するのがポイント。
class TitleUpdate extends Title { protected $table = 'titles'; public function myvalidator($request) { return \Validator::make($request->toArray(), [ 'releasedate' => 'date_format:Y/m/d', ]); } }
PostgreSQLで大文字小文字検索
「iLIKE」を使えば、PostgreSQLで大文字小文字関係なく検索できる。
Mymodel::where('name', 'iLIKE', $name)->first();
Laravel5.3のログインをメールアドレス以外にする
Laravel5.3で、またやり方が変わったみたい。編集対象のファイルは
App\Http\Controllers\Auth\LoginController.php
public function username() { return 'username'; }
Laravel5.2からコンテナ登録方法が変わった
古い書き方
$this->app['myapp'] = $this->app->share(function($app) { return new Myapp; });
新しい書き方
$this->app->singleton('myapp',function($app) { return new Myapp; });
Laravel5でajax
Laravel5.2系の古いバージョンでajax動かしていたんだけど、5.2系の新しいバージョンだと動かない。よくわからないけどTOKEN入れないとダメらしい。
js側
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
ヘッダ
<meta name="csrf-token" content="{{ csrf_token() }}" />
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 `tags`)
dropする順番間違えていた。先にキーの関連付けテーブル消すべきだった。以下が正しい順番。
public function down() { Schema::dropIfExists('title_tag'); Schema::dropIfExists('tags'); }