我创建了一个'eloquent'文件夹来开始测试/学习该组件,我的 composer.json 文件是:
{
"require": {
"php": ">=5.3.0",
"illuminate/database": "4.0.*"
}
}
以下是我的 test.php 文件,其中删除了凭据。它工作得很好,直到我在命令中添加 - >记住(10)。我想在接下来的时候考虑添加Illuminate Cache,如果这是开始使用所需的 - > remember()。是否有人知道有关此类内容的博客文章或教程?
<?php
/**
* Testing Laravel's Eloquent ORM
* @see https://github.com/illuminate/database
* @see http://laravel.com/docs/database
*/
require 'vendor/autoload.php';
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection(array(
'driver' => '',
'host' => '',
'database' => '',
'username' => '',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
));
//$capsule->bootEloquent();
$capsule->setAsGlobal();
$name = Capsule::table('user')->where('id', 123 )->remember(10)->get();
var_dump( $name );
// PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class cache does not exist'
我不确定下一步是什么让 - &gt;记住()工作。我尝试将 illuminate / cache 添加到composer.json文件并进行更新。我不确定如何在Laravel之外的Eloquent中使用它。
答案 0 :(得分:5)
saff33r是对的,但只是为了帮助像我这样需要&#34;文件&#34;缓存这是如何:
在你的composer.json
"illuminate/cache": "4.0.*",
"illuminate/filesystem": "4.0.*",
在你的启动文件中:
use \Illuminate\Database\Capsule\Manager as Capsule;
use \Illuminate\Cache\CacheManager as CacheManager;
use \Illuminate\Filesystem\Filesystem as Filesystem;
...
$container = $capsule->getContainer();
$container['config']['cache.driver'] = 'file';
$container['config']['cache.path'] = __DIR__ . '/uploads/cache/eloquent';
$container['config']['cache.connection'] = null;
$container['files'] = new Filesystem();
$cacheManager = new CacheManager($container);
$capsule->setCacheManager($cacheManager);
$capsule->bootEloquent();
答案 1 :(得分:4)
它应该已经进入“照亮/缓存”,查看供应商,你应该在那里看到它。
您需要设置缓存管理器,然后通过调用
传递它$capsule->setCacheManager(CacheManager $cache);
我没有深入了解如何做到这一点的细节,但希望这将是足够的细节让你前进。
修改:
以下是您需要添加以使其正常工作的内容:
use Illuminate\Cache\CacheManager as CacheManager;
$container = $capsule->getContainer();
$container->offsetGet('config')->offsetSet('cache.driver', 'array');
$cacheManager = new CacheManager($container);
$capsule->setCacheManager($cacheManager);
显然可以随意更改使用的缓存驱动程序,但请记住,更改缓存驱动程序需要添加额外的必需设置。
答案 2 :(得分:0)
查看https://github.com/Luracast/Laravel-Database它提供了完整的laravel支持,包括工匠迁移等等
4.2
分支包含laravel 4.2。* components 5.2
分支包含laravel 5.2。* components 披露:我是上述存储库的作者