ふんばりフロントエンジニアのブログ

新米フロントエンジニアのふんばっている日々と備忘録です。

【CodeIgniter】dockerで構築したらform_openのurlがおかしくなった件

dockerでcodeigniterの環境を作っていて、公式チュートリアルをやっていたところform_openというメソッドを使うとURLがおかしくなってしまう、という現象に出くわしました。

form_openというのは、formを生成してくれるCodeIgniter独自の関数です。

どのようにおかしくなったかというと、formのactionのURLが想定していたURLと違ったんですね。

というのも、私が立ち上げていたapacheのIPは「localhost:1111」。

つまり、actionのURLも「localhost:1111〜」となるのが望ましいです。

しかし、action属性を見てみると次のようなURLになっていました。

f:id:ma1129nm:20190419163021p:plain

このform_openという関数はconfig.phpのbase_urlを基準にURLを決定するらしく、確かにconfig.phpを見てみると何も記載してありませんでした。

$config['base_url'] = '';

そのため、下記のようにbase_urlを指定してあげたところ問題なくURLが指定したURLに置き換わりました。

$config['base_url'] = 'http://localhost:1111';


さて、「192.168.128.3ってなんぞ?」と思っていたのですがなんだか見覚えが…

とりあえず、apacheのコンテナに入って「hostname -i」でIPを調べたらまさにこの番号でした。

つまり、何も指定しないとdockerのコンテナのIPがbase_urlになってしまうということなんですね。

初めてCodeigniter触りましたが、今のところLaravelやCakePHPよりも自由度が高そうな感触。

とりあえず何か作ってみようかな…