我意识到Prestashop不是MVC平台,Laravel是,但我很好奇这种事情是否可行,以及如何去做。
感谢。
答案 0 :(得分:0)
使用illuminate/db包实现prestashop模块是获得此类集成的一种方法。在自定义模块文件夹中,您可以使用composer require
安装illuminate / database软件包(它将在vendor
子文件夹中安装软件包)。然后,按照包本身的说明,您可以编写一个初始化胶囊管理器的php文件(称之为initilluminate.php
):
require __DIR__ . '/vendor/autoload.php';
// You can reuse your laravel model if you need them
require_once dirname(__FILE__) . '/models/MyLaravelModel.php';
use Illuminate\Database\Capsule\Manager as Capsule;
function initCapsule() {
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => _DB_SERVER_,
'database' => _DB_NAME_,
'username' => _DB_USER_,
'password' => _DB_PASSWD_,
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => 'ps_',
]);
// Make this Capsule instance available globally via static methods
$capsule->setAsGlobal();
// Setup the Eloquent ORM
$capsule->bootEloquent();
}
在模块的主要php文件中,你需要
require_once dirname(__FILE__) . '/initilluminate.php';
并且,在构造函数中,只需调用:
initCapsule();
初始化库。然后,您可以使用laravel模型或使用通常的laravel语法通过Capsule::table(<table_name>)->where...
访问数据库。