mindfire/filemaker_laravel

此包已被废弃且不再维护。未建议替代包。

ORM用于与FileMaker数据库交互

1.0.1 2016-06-30 03:37 UTC

This package is not auto-updated.

Last update: 2023-12-09 14:56:26 UTC


README

由于该包不再与最新版本的Laravel兼容,因此已存档此存储库。

为什么存档此存储库?

代码库与Laravel的最新版本不兼容。由于资源限制和维护不足,我们正在存档此项目。

安装

安装Laravel

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

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

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

安装FileMakerLaravel包。

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

mindfire/filemaker_laravel": "*"

在终端中运行以下命令。

composer update

加载官方FileMaker PHP API的方式。

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

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

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

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

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

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

在终端中运行以下命令以自动加载FileMaker.php。

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

在 app/Test.php 中将生成 Test.php 模型文件。这个类扩展了 Laravel 的 Eloquent 模型类,但我们需要让它扩展 filemaker_laravel 模型类。从新创建的 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 布局中有一个 portal test_portal。假设 test_portal 有一个字段 portal_field1 和三行。那么你会得到以下结果。

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

备注

如果您遇到了像“已弃用:在 /FileMaker/Implementation/Parser/FMResultSet.php 第65行中,通过引用赋值给 new 已弃用”这样的异常

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

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

问题报告。

如果您发现这个包有任何问题,请点击 GitHub 导航栏中的问题部分,并添加您的 issue 详细信息。 https://github.com/mindfiredigital/filemaker_laravel/issues