2015-11-03 53 views
0

我想创建一个外部API))的模型,这将让我跑操作,如GET(其中,(等一个例子:Laravel 5:如何使用远程模型?

$users = UserFromApi::get(); // Get all users from api 
$activeUsers = UserFromApi::where('active', 1)->get(); 

我来Laravel从CakePHP的。在CakePHP中,它是通过为模型提供自定义数据源和连接完成的。

对于Laravel 4,有一个很好的库叫Trucker(https://github.com/indatus/trucker),但我发现绝对没有其他合理的L5工具。

“将模型映射到外部API”问题的正确方法是什么?

+0

卡车司机现在支持Laravel 5 https://github.com/Indatus/trucker/tree/laravel-5#config-laravel –

回答

0

在config/database.php中定义远程连接。

'mysql_remote' => [ 
     'driver' => 'mysql', 
     'host'  => env('DB_HOST', 'localhost'), 
     'database' => env('DB_DATABASE', 'forge'), 
     'username' => env('DB_USERNAME', 'forge'), 
     'password' => env('DB_PASSWORD', ''), 
     'charset' => 'utf8', 
     'collation' => 'utf8_unicode_ci', 
     'prefix' => '', 
     'strict' => false, 
    ], 

然后,如果你使用的是口才模型

class UserFromApi extends Eloquent { 

    protected $connection = 'mysql_remote'; 
} 

,或者使用查询构建器

DB::connection('mysql_remote')->table('users')->select('email','surname')->get() 
+0

感谢您的答案,但我没有使用MySQL所有!数据应该直接来自api(返回结果为json),不涉及数据库。我试图在连接时使用这种方法,但我不知道如何模拟“api-driver”。 – Rav

+1

抱歉!酷枪图书馆怎么样? http://guzzle.readthedocs.org/en/latest/ – Leo

+1

嗯是的,但这涉及到连接层,可以通过简单的file_get_contents($ url)来实现。我的问题完全是Laravelish: - )我的问题可以缩减为:“如何在Laravel中为api分页记录”。我想我会问这样的问题,这更直观。 – Rav

2

卡车司机现在支持Laravel 5

按照以下说明配置Laravel 5 https://github.com/Indatus/trucker/tree/laravel-5#config-laravel

  1. 添加"indatus/trucker": "dev-laravel-5"到composer.json和运行composer update
  2. 在配置/ app.php

希望帮助粘贴'Trucker\TruckerServiceProvider::class' 发布的配置文件php artisan vendor:publish indatus/trucker

  • 加入卡车司机到您的供应商; )