codemusk / odoo-api
Laravel 包,使用 Ripcord 与 Odoo API 交互
Requires
README
简介
OdooApi 是一个 Laravel 包,使用 Ripcord 与 Odoo API 交互。此包提供了一种简单且干净的方法将 Odoo 的功能集成到您的 Laravel 应用程序中。
安装
-
使用 composer 安装此包
composer require codemusk/odoo-api
-
将服务提供者和别名添加到您的
config/app.php
文件中(适用于 Laravel 版本低于 11)'providers' => [ // Other Service Providers Codemusk\OdooApi\OdooApiServiceProvider::class, ], 'aliases' => [ // Other Facades 'OdooApi' => Codemusk\OdooApi\Facades\OdooApi::class, ],
-
对于 Laravel 11 及以上版本,将服务提供者和别名添加到包的
composer.json
文件的extra
部分"extra": { "laravel": { "providers": [ "Codemusk\\OdooApi\\OdooApiServiceProvider" ], "aliases": { "OdooApi": "Codemusk\\OdooApi\\Facades\\OdooApi" } } }
-
发布配置文件
php artisan vendor:publish --provider="Codemusk\OdooApi\OdooApiServiceProvider"
-
通过编辑
config/odooapi.php
文件并使用您的 Odoo 连接详细信息来配置此包return [ 'url' => env('ODOO_URL', 'http://your-odoo-instance.com'), 'db' => env('ODOO_DB', 'your-database-name'), 'username' => env('ODOO_USERNAME', 'your-username'), 'password' => env('ODOO_PASSWORD', 'your-password'), ];
用法
以下是如何在 Laravel 控制器中使用 OdooApi 包的示例
namespace App\Http\Controllers; use Illuminate\Http\Request; use Codemusk\OdooApi\Facades\OdooApi; class TestController extends Controller { public function test() { try { // List records $partners = OdooApi::listRecords('res.partner', 0, 10, ['name', 'email']); // Create a record $newPartner = OdooApi::createRecord('res.partner', [ 'name' => 'New Partner', 'email' => 'newpartner@example.com', ]); // Update a record $updateResult = OdooApi::updateRecord('res.partner', $newPartner, [ 'name' => 'Updated Partner Name', ]); // Delete a record $deleteResult = OdooApi::deleteRecord('res.partner', $newPartner); // Read a specific record $record = OdooApi::readRecord('res.partner', 8); // Search and read records $filteredRecords = OdooApi::searchAndRead('res.partner', [['name', 'ilike', 'John']], ['name', 'email'], 0, 10); // List record fields $fields = OdooApi::listRecordFields('res.partner'); // Output results (example) dd($partners, $newPartner, $updateResult, $deleteResult, $record, $filteredRecords, $fields); } catch (\Exception $e) { echo "Error: " . $e->getMessage(); } } }
方法
以下方法可用于与 Odoo API 交互:
listRecords($model, $offset = 0, $limit = 10, $fields = []) 从指定的模型获取记录列表。
$model: Odoo 模型的名称(例如,'res.partner')。 $offset: 分页的偏移量(默认为 0)。 $limit: 要检索的最大记录数(默认为 10)。 $fields: 要检索的字段数组(默认为空数组)。 createRecord($model, $data) 在指定的模型中创建新的记录。
$model: Odoo 模型的名称(例如,'res.partner')。 $data: 要插入的数据的关联数组。 updateRecord($model, $id, $data) 更新指定模型中的现有记录。
$model: Odoo 模型的名称(例如,'res.partner')。 $id: 要更新的记录的 ID。 $data: 要更新的数据的关联数组。 deleteRecord($model, $id) 从指定的模型中删除记录。
$model: Odoo 模型的名称(例如,'res.partner')。 $id: 要删除的记录的 ID。 readRecord($model, $id) 从指定的模型中读取特定的记录。
$model: Odoo 模型的名称(例如,'res.partner')。 $id: 要读取的记录的 ID。 searchAndRead($model, $domain, $fields, $offset = 0, $limit = 10) 根据域搜索记录,然后读取它们。
$model: Odoo 模型的名称(例如,'res.partner')。 $domain: 指定搜索域的数组。 $fields: 要检索的字段数组。 $offset: 分页的偏移量(默认为 0)。 $limit: 要检索的最大记录数(默认为 10)。 listRecordFields($model) 列出指定模型的字段。
$model: Odoo 模型的名称(例如,'res.partner')。
sudo apt-get install php-xmlrpc
故障排除
brew install php@8.3
确保已安装 PHP XML-RPC 库。对于 PHP 8,您可以使用
或者
如果您遇到身份验证问题,请检查 config/odooapi.php 文件中的 Odoo 连接详细信息。
This `README.md` provides a comprehensive overview of the package, installation instructions, usage examples, and detailed descriptions of each method available for interacting with the Odoo API.