我有两个博客运行一个用Laravel 5.4创建,另一个运行在WordPress .
我正在寻找一种解决方案,无论何时在Laravel中创建POST,都需要与WordPress同步 . 我知道WordPress,但Laravel是新的 .
在我的Laravel应用程序中,我使用的是一个控制器,我在Laravel数据库中插入数据,下面是我的插入代码: -
public function insert(Request $request) {
$this->validate($request, [
'title' => 'required',
'description' => 'required'
]);
$articles = new Vocab;
$articles->title = $request->input('title');
$articles->description = $request->input('description');
$articles->created = Carbon::now()->toDateTimeString();;
$articles->save();
$posttoWordPress = $this->postWordpress($articles->title, $articles->description);
return redirect('/')->with('info', 'Article saved successfully!');
}
我希望Laravel同时向我的WordPress和WordPress发布请求,以创建相同 Headers 和描述的帖子 .
我尝试过使用GuzzleHttp Client,下面是代码: -
public function postWordpress($title, $description) {
$client = new Client([
'base_uri' => 'http://XXX.XX.XX.XXX/mysite/wp-json/wp/v2/',
'headers' => [
'Authorization' => 'Basic XXXXXXXXX',
'Accept' => 'application/json',
'Content-type' => 'application/json'
]
]);
$response = $client->post('posts', [
'form_params' => [
'title' => $title,
'content' => $description
],
]);
$response = json_decode($response->getBody(), true);
}
我是WordPress的基本授权,它与POSTMAN一起工作正常 . 当我提交数据时,显示错误: -
Error creating resource: [message] fopen(http://XXX.XX.XX.XXX/mysite/wp-json/wp/v2/posts): failed to open stream: No such file or directory
[file] /var/www/html/lv/vendor/guzzlehttp/guzzle/src/Handler/StreamHandler.php
但是,当我从浏览器打开API URL(http://XXX.XX.XX.XXX/mysite/wp-json/wp/v2/posts)时,它工作正常 .
请给我一些建议或几个代码示例,以便我可以完成这项任务 .
谢谢