##corcelの事前設定
下記を参考に進めていきます。
かなり巻いてます(師走だからね)。
まずはcorcelをインストール
composer require jgrossi/corcel
laravelのバージョンが5.4以下は下記を記載
config/app.php
'providers' => [
/*
* Package Service Providers...
*/
Corcel\Laravel\CorcelServiceProvider::class,
]
php artisan vendor:publish --provider="Corcel\Laravel\CorcelServiceProvider"
databaseにwordpressの接続設定を記載。
config/database.php
'wordpress' => [
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'mydatabase',
'username' => 'admin',
'password' => 'secret',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'wp_',
'strict' => false,
'engine' => null,
],
コネクションを'wordpress'へ変更
config/corcel.php
<?php
return [
(省略)
'connection' => 'wordpress',
(省略)
];
WpPostモデルを作成します。
php artisan make:model WpPost
WpPost.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Corcel\Model\Post as Corcel;
class WpPost extends Corcel{
protected $connection = 'wordpress';
}
##wordpressとlaravelのdockerの設定
事前に作成済みのwordpressのdocker-compose.ymlファイルの末尾に下記を記述
wordpress側docker-compose.yml
networks:
default:
external:
name: new_network
laravel側docker-compose.yml
networks:
default:
external:
name: new_network
createコマンドでnew_networkを作ります。
docker network create new_network
docker networkコマンドで確認します。
docker network ls
xxxxxxxxxx my_network bridge local
dockerコンテナを立ち上げます。
docker-compose up
##laravel側のdatabase設定を修正
dockerコンテナ内のwordpress-mysqlにログインし、アドレスを確認します。
hostname -i
192.168.1.2
laravelのdatabase.phpの設定内容を変更します。
それぞれwordpressのwp-config.phpの設定を元に書き換えていってください。
config/database.php
'wordpress' => [
'driver' => 'mysql',
'host' => 192.168.1.2,
'database' => 'mydatabase',
'username' => 'wordress_root',
'password' => 'wordpress_password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'wp_',
'strict' => false,
'engine' => null,
],
##wordpressのDBに接続
laravelのdockerコンテナにログインし、wordpressのDBに接続します。
php artisan tinker
>>> App\WpPost::find(1)
=> App\WpPost {#5963
ID: 1,
post_author: 1,
post_date: "2017-10-20 12:06:00",
post_date_gmt: "2017-10-20 03:06:00",
post_content: "WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !",
post_title: "Hello world!",
post_excerpt: "",
post_status: "publish",
comment_status: "open",
ping_status: "open",
post_password: "",
post_name: "hello-world",
to_ping: "",
pinged: "",
post_modified: "2017-10-20 12:06:00",
post_modified_gmt: "2017-10-20 03:06:00",
post_content_filtered: "",
post_parent: 0,
guid: "http://localhost:8888/?p=1",
menu_order: 0,
post_type: "post",
post_mime_type: "",
comment_count: 1,
meta: Corcel\Model\Collection\MetaCollection {#5964
all: [],
},
}
無事接続できました!!