我有两个Web应用程序在不同的域中工作,第一个是像这样的Laravel Web应用程序
domaine1.com
和另一个使用laravel构建的Web应用程序
domaine2.com
我在第一个应用程序上有这样的仪表板(domaine1.com/dashboard
),
我想从这个仪表板添加例如A书到Web应用程序2,它有自己的数据库和表......
请有人告诉我我该怎么办?
我在laravel上有点新手,我想我应该使用类似API的东西?还是其他什么?
答案 0 :(得分:0)
在Application 2 routes.php中创建路线以获取图书 例如
Route::get('domaine2.com/books', 'BookController@getBooks');
在BookController中:
public function getBooks()
{
$books = Books::all(); //I assume that Books is your model
return $books
}
现在你所要做的就是在domaine1.com应用程序的控制器中调用它来获取你的书
$books = file_get_contents('http://domaine2.com/books');
首先尝试一下,确保它有效,然后尝试访问http://domaine2.com/books
,看看你的书是否有json。
答案 1 :(得分:0)
是。你应该使用API。虽然它不会那么容易,因为你想创建跨域请求。
如果您要传递的数据未被分类,您可以创建一个公共API处理程序,这意味着每个人都可以访问它。例如,这可以是从数据库返回某些对象的get请求。假设您在domain1.com中创建了一条路线:
GET domain1.com/api/books
返回json/data
然后,如果有人访问http://domain1.com/api/books,他会看到此回复格式化为json。您可以使用CURL在domain2.com
应用中使用它,也可以使用带有axios的vue.js内置它。
如果要提供的数据是分类的,或者您想要发出GET以外的请求(例如POST),则必须阅读有关应用程序授权的信息。举一个简单的方法:你必须向你的domain1.com
应用程序显示允许访问受限数据的人才能这样做。
顺便提一句,提及其他回复:您应该在路线中使用api.php
,而不是web.php
。请记住,file_get_contents
明显慢于CURL。