lakinmohapatra/filemaker_laravel

该包已被放弃,不再维护。作者建议使用mindfire/filemaker_laravel包。

ORM 用于与 FileMaker 数据库交互

1.0.0 2016-04-08 07:23 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:58:17 UTC


README

安装 Laravel

Laravel 使用 Composer 来管理其依赖项。因此,在使用 Laravel 之前,请确保您的机器上已安装 Composer。首先,使用 Composer 下载 Laravel 安装程序

composer create-project --prefer-dist laravel/laravel blog

您可能需要授予存储目录的写入权限(有关详细信息,请参阅 laravel.com)。

安装 FileMakerLaravel 包

在 composer.json 的 require 部分添加以下行。

lakinmohapatra/filemaker_laravel": "*"

加载官方 FileMaker PHP API 的方法。

  1. 将 FileMaker 官方库作为 Laravel 包制作,并通过 composer 加载。

  2. 由于我们的包依赖于官方的 FileMaker API,您需要通过 composer 自动加载来加载它。执行此操作的步骤。

    1. 转到 vendor/opensource-mindfire/
    2. 创建一个名为 "filemakerapi" 的目录。
    3. 粘贴 FileMaker.php 文件及其相关类文件。

转到根目录中的 composer.json。并添加以下行。

"autoload": {
        "classmap": [
            "vendor/opensource-mindfire/filemakerapi/FileMaker.php"
        ],
 }

这将自动加载 FileMaker.php 并使其在整个包中可用。

在终端中运行以下命令以安装 FileMakerLaravel

composer update

配置

打开 config/app.php,并将以下行添加到 providers 数组中

'filemaker_laravel\Database\FileMakerServiceProvider::class',

在 config/database.php 中将默认连接类型更改为 filemaker

'default' => 'filemaker',

将以下内容添加到 connections 数组中

'filemaker' => [
	'driver'   => 'filemaker',
	'host'     => env('DB_HOST'),
	'database' => env('DB_DATABASE'),
	'username' => env('DB_USERNAME'),
	'password' => env('DB_PASSWORD'),
],

在您的根目录中创建一个名为 .env 的新文件,并添加以下内容,同时包含您的数据库连接详细信息

DB_HOST=YourHost
DB_DATABASE=YourDatabase
DB_USERNAME=YourUsername
DB_PASSWORD=YourPassword

请注意,如果您正在使用版本控制,则不希望 .env 文件成为您存储库的一部分,因此默认情况下它包含在 .gitignore 中。

用法

创建模型

Artisan 是 Laravel 包含的命令行界面。它提供了一些有用的命令,供您在开发应用程序时使用。它由强大的 Symfony Console 组件驱动。要查看所有可用的 Artisan 命令列表,您可以使用 list 命令

php artisan list

通常,我们使用以下 artisan 命令在 Laravel 中创建模型。php artisan make:model Test

在此处,Test.php 模型文件将在 app/Test.php 中生成。此类扩展 Laravel 的 Eloquent Model 类,但我们需要它扩展 filemaker_laravel Model 类。从新创建的 Test.php 文件中删除以下行

use Illuminate\Database\Eloquent\Model;

然后替换为以下行

use filemaker_laravel\Database\Eloquent\Model;

在您的模型类中,您需要指定在查询 FileMaker 数据库时应使用的布局。为此,请在 Test 类内部添加以下行

protected $layoutName = 'YourTestLayoutName';

默认情况下,Laravel 将假定您的表的主键是 "id"。如果您有不同的主键,则需要在该类内部添加以下内容

protected $primaryKey = 'YourTestPrimaryKey';

Eloquent 使用

检索所有记录

如果您处于控制器中,则使用模型名称(Test)。如果您处于模型中,则使用"self"代替"Test"。

Test::all();

返回类型与Laravel相同

添加约束

由于每个Eloquent模型都充当查询构建器,您也可以向查询中添加约束,然后使用get方法检索结果

Test::where('active', 1)
	->orderBy('name', 'desc')
 	->skip(10)
 	->take(10)
 	->get();

检索单个记录

通过主键检索模型

Test::find(1);

检索与查询约束匹配的第一个模型

Test::where('active', 1)->first();

基本插入

要在数据库中创建新记录,只需创建一个新的模型实例,设置模型上的属性,然后调用save方法

$test = new Test;
$test->name = 'name';
$test->save();

基本更新

save方法也可以用于更新数据库中已经存在的模型。要更新模型,您应该检索它,设置您希望更新的任何属性,然后调用save方法。

$test = Test::find(1);
$test->name = 'New Name';
$test->save();

也可以对匹配给定查询的任意数量的模型执行更新操作。

Test::where('active', 1)
  ->where('address', 'San Diego')
  ->update(['name' => 'Deb']);

删除模型

要删除模型,请在模型实例上调用delete方法

$test = Test::find(1);
$test->delete();

其他创建方法

您还可以使用两种其他方法通过批量分配属性来创建模型:firstOrCreate和firstOrNew。firstOrCreate方法将尝试使用给定的列/值对定位数据库记录。如果模型在数据库中找不到,将使用给定的属性插入记录。

firstOrNew方法与firstOrCreate类似,将尝试在数据库中找到与给定属性匹配的记录。但是,如果没有找到模型,将返回一个新的模型实例。请注意,由firstOrNew返回的模型尚未持久化到数据库。您需要手动调用save来持久化它

// Retrieve the user by the attributes, or create it if it doesn't exist...
$user = App\User::firstOrCreate(['name' => 'user name ']);

// Retrieve the flight by the attributes, or instantiate a new instance...
$user = App\User::firstOrNew(['name' => 'user name']);

执行FileMaker脚本

您可以通过以下命令执行FileMaker脚本。请将脚本名称和参数传递给performScript函数。然后您需要使用get()来获取预期结果。

$this->performScript('Web_Contact_Creation_Script', 'test_value')->get('test_field1');

访问门户

无需额外操作。此包足够智能,可以自动访问布局中附加的所有门户。例如:假设您在test布局中有一个名为test_portal的门户。假设test_portal有一个字段portal_field1和三行。那么您将得到以下结果。

"test_portal::portal_field1" => array:3 [▼
	 	0 => "Test1"
	      	1 => "Test2"
	      	2 => "Test3"
	    ]

注意

如果您遇到类似于" Deprecated: Assigning the return value of new by reference is deprecated in /FileMaker/Implementation/Parser/FMResultSet.php on line 65"的异常

请将最新版本的PEAR.php替换为FileMaker/文件夹中较旧的PEAR.php版本。实际上,这是官方FileMaker PHP API中的错误,它显示了这些已弃用和严格的警告。

默认情况下,任何与FileMaker包相关的错误都将记录到您的Laravel日志文件中。

问题报告

如果您在此软件包中发现任何问题,请点击GitHub导航栏中的“问题”部分并添加您的问题详情。https://github.com/opensource-mindfire/filemaker_laravel/issues