HerokuConnectを使ったCakePHP3とSalesforceの連携
前提:CakePHP3でプロジェクトを作成してbakeしておいてください。
bakeで生成された下記のファイルをそれぞれHerokuConnectから生成されたスキーマに合わせるように変更します。
config->app.php
app.php
//postgresに変更
'driver' => 'Cake\Database\Driver\Postgres',
//HerokuPostgresの接続情報に変更
'host' => 'host',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
//下記を追加
'schema' => 'public',
Model->Table->~Table.php
hogesTable.php
public function initialize(array $config)
{
//接続先を変更
$this->setTable('salesforce.hoge__c');
}
Model->Entity->~.php
Hoge.php
class Hoge__c extends Entity
{
protected $_accessible = [
//下記をスキーマの仕様に合うように変更
'hoge' => true,
'fuga' => true,
];
}
これでCakephp3->Salesforceの接続は完了です。
後はControllerやTemplate、各種バリデーションをCakephp3の仕様に沿って設定すれば、DBの中身を確認したり追加したりすることが出来るようになります。
Salesforce->HerokuConnectにつきましては別記事に書いてあるのでそちらをご確認ください。
注意点として、app.php->Datasourcesの箇所でHerokuConnectで接続されているスキーマを直接指定すると"function get_xmlbinary() does not exist"エラーを吐かれてしまうので、app.php内では必ず”schema”を”public”に指定した上でTableから”schema.table”の形式で指定するようにしましょう。
Heroku Connectの "function get_xmlbinary()does not exist"エラーを解決するにはどうすればいいですか?(※参考リンク)
この記事が気に入ったらサポートをしてみませんか?