php oil g model {以下省略} をすると下記のエラーがでました。
Uncaught exception Fuel\Core\PhpErrorException: 2 – Illegal string offset ‘primary’ in {path}/fuel/packages/oil/classes/generate/migration/actions.php on line 355
エラーがおこるケースとして、
count:int:default[0]
の様にデフォルト値が含まれているコマンドでエラーが発生していました。
この症状ですが、defaultを0以外にすると一見エラーも出ずコマンドが通るのですが、default値の設定はmigrationに反映されません。
fuel/packages/oil/classes/generate.php Line:1809を
修正前
if (count($part_matches) > 0) { $option = $part_matches[0]; } else { $part_matches = true; }
修正後
if (count($part_matches) > 0) { $part_matches = $part_matches[0]; } else { $part_matches = true; }
に修正すると正常動作します。
数年まえにつくったシステムがFuelPHP1.7系(PHP)でつくられていたのですが、諸事情によりPHP7.2が動くサーバに移設することとなり、対応しました。
開発も止まっていて、情報もあまりないのでなかなか大変です。。