Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 两个单独的Laravel实例之间的API_Php_Laravel_Laravel 5.2 - Fatal编程技术网

Php 两个单独的Laravel实例之间的API

Php 两个单独的Laravel实例之间的API,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我正试图找出我的一个问题。我在同一台服务器上有两个laravel设置,每个都是通过vHost控制的独立站点 SiteA需要充当SiteB的API。因此,在SiteA中,我通过 Route::group(['prefix' => 'api/v1'], function () { Route::post('postProject', array('as' => 'postProject', 'uses' => 'APIController@postProject')); }

我正试图找出我的一个问题。我在同一台服务器上有两个laravel设置,每个都是通过vHost控制的独立站点

SiteA需要充当SiteB的API。因此,在SiteA中,我通过

Route::group(['prefix' => 'api/v1'], function () {
    Route::post('postProject', array('as' => 'postProject', 'uses' => 'APIController@postProject'));
});
现在,控制器的功能就是这样

public function postProject(Project $project)
{
    dd($project);
}
所以在SiteB中,我想调用这个API。因此,我设置了一个包含项目对象的路由(我尝试了get和post)

此控制器功能执行以下操作

public function postProject($project)
{
    $client = new GuzzleHttp\Client();
    $req = $client->request('POST', 'http://localhost/api/v1/postProject', [
        'body' => $project,
        'headers' => [
            'Content-Type' => 'text/xml',
            'Content-Length' => strlen($project),
        ]
    ]);

    $output = $req->getBody()->getContents();

    return $output;
}
我以localhost作为示例url,因此真实的url没有公开。siteB发出post请求时收到的错误是404未找到。如果我在siteA上设置了一个简单的get函数来返回一些东西,那么siteB可以毫无问题地执行这个API调用。当我试图将某些内容从siteB发布到siteA时,问题就出现了


另外,当我传递$project对象时,是否也有方法发送它的相关模型?一个$project与其他一些模型有一对多的关系,理想情况下,我希望获得相关的数据。

我认为您只需要急于加载这些关系

public function postProject()
{
    //dd($project);
    Project::with('relation1', 'relation2')->find($id);
}

谢谢,这非常适合获取一部分数据。由于relation1是一个多关系,我如何为此返回多个结果?另外,如果relation1有更多的子模型,有没有办法获得这些子模型?感谢您首先接受答案,是的,您可以将子关系链接到Project::with('relation1.child','relation2.child1.child')->find($id);
public function postProject()
{
    //dd($project);
    Project::with('relation1', 'relation2')->find($id);
}