是否有某种方法可以记录或输出从a Model_Orm::query()或a 生成的mysql查询字符串Model_Orm::find()?
我有一个复杂的Orm::query(),没有给我我期望的结果,我想知道为什么!
在过去的几年里,我一直在开发基于CodeIgniter的Web应用程序.迄今为止,CI对我很有帮助,但对于下一代软件,我希望转向PHP 5.3和更强大的框架.自从大约一年前出现以来,我一直在观看FuelPHP,现在我已经开始认真开始下一版应用程序的开发了,我有兴趣为FuelPHP提供支持.
我的应用程序依赖于使用多个应用程序目录.从本质上讲,系统应用程序具有系统的核心功能,管理员不应该触及这些代码,因为它会在更新期间被更改.此外,还有一个用户应用程序目录,管理员可以在其中扩展和覆盖系统类.这样,管理员可以在不触及系统核心的情况下自定义系统(从而使他们在系统更新时不会丢失修改).当请求来自URL时,我希望系统首先检查用户应用程序目录.如果它在那里找不到控制器,请转到系统应用程序目录(理论上,它应该找到该文件)并使用该控制器.
我不想错误地从CI或Kohana的思维模式中解决这个问题,所以我想知道在FuelPHP中这样做的最佳方法是什么?由于我对FuelPHP没有太多经验,所以我希望有人可以给我一些指示或者把我推向正确的方向.
谢谢!
嘿,我正在使用FuelPHP并且这样做......
$query =
\DB::select( 'username' )
->from( 'users' )
->execute()
->as_array();
Run Code Online (Sandbox Code Playgroud)
我正在获得如下所示的阵列.
Array
(
[0] => Array
(
[username] => daGrevis
)
[1] => Array
(
[username] => whatever
)
[2] => Array
(
[username] => foobar
)
)
Run Code Online (Sandbox Code Playgroud)
这绝对不是我需要的.这是我的"理想阵列"的例子:
Array
(
[0] => daGrevis
[1] => whatever
[2] => foobar
)
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能获得"理想阵列"?也许我在查询中做错了...如果不...我怎样才能将数组#1转换为数组#2?使用循环可能吗?还是有内置功能?我糊涂了.
我想知道Fuel ORM是否可以处理这里描述的设计:
http://www.codeproject.com/KB/aspnet/LocalizedSamplePart2/normalizedSchema.gif
必须生成并执行以下SQL或类似的东西:
SELECT CultureId
FROM Culture WHERE CultureName = @CultureName
SELECT I.ItemId, IL.[Name], IL.[Description],
I.Price, CL.[Name], CL.[Description]
FROM Item I
INNER JOIN Item_Locale IL ON I.ItemId = IL.ItemID AND IL.CultureId = @CultureIdD
INNER JOIN Category C ON I.CategoryId = C.CategoryId
INNER JOIN Category_Locale CL ON C.CategoryID = CL.CategoryId AND CL.CultureId = @cultureId
WHERE I.SellerId = @SellerID
Run Code Online (Sandbox Code Playgroud)
或者我必须使用普通查询?
请指教.
当我想在Twig中使用分割功能时,我遇到了问题,我有这样的话Male\tDoctor,我想用\tascii 分割那个单词,
我在搜索引擎中搜索,我在这个网址上得到关于树枝分裂问题的讨论我读到了,我认为问题是固定的,但是当我在twig网站文档中搜索时,我找不到过滤功能split你可以阅读这个.
当我尝试使用此代码时
{{ var | split('\t') })
Run Code Online (Sandbox Code Playgroud)
回报是 The filter "split" does not exist
你对解决这个问题有什么想法或建议吗?
感谢您的回答...:)
注意:
我正在使用fuelphp框架和twig模板
您好,我一直在浏览互联网文章论坛来解决我的问题,但到目前为止还没有结果。我正在尝试在 localhost 上为我的 FuelPHP 开发设置 Apache 虚拟主机,但我不断收到错误 403 消息。这是我当前的设置。
#/etc/apache2/sites-enabled/000-default
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/home/supercomputer/Desktop/PHP/fuelProject/public"
ServerName localhost.home
<Directory "/home/supercomputer/Desktop/PHP/fuelProject/public" >
Options Indexes FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我已将我的文档根目录指向 FuelProject 中的公共文件夹。另外,为了确保 Apache 能够访问服务器文件,我递归地设置了所有文件的读取、写入和执行权限,以保证 100% 的安全。关于还有什么可能出问题的任何线索吗?
PS:我正在运行 ubuntu raring (13.04)
PSS:我正在尝试访问 localhost.home 和 localhost.home/index.php。重新启动服务器时我还收到以下警告
* Restarting web server apache2 apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Fri May 03 15:46:58 …Run Code Online (Sandbox Code Playgroud) 有人可以解释我应该如何使用PHP的作曲家.我在我的doc根目录下有一个composer.json文件,它下载了我的项目的核心包,但是当我想添加另一个像google + php sdk这样的项目时,请点击此处https://github.com/googleplus/gplus-quickstart-php /
我该怎么处理composer.json文件?我手动组合它们?我只是将composer.json下载到另一个目录中吗?
我当前的composer.json文件看起来像这样
{
"name": "fuel/fuel",
"type": "metapackage",
"description": "The FuelPHP framework",
"keywords": ["framework"],
"homepage": "http://fuelphp.com",
"license": "MIT",
"authors": [
{
"name": "FuelPHP Development Team",
"email": "team@fuelphp.com"
}
],
"support": {
"irc": "irc://irc.freenode.org/fuelphp",
"forum": "http://fuelphp.com/forums"
},
"require": {
"php": ">=5.3.3",
"monolog/monolog": "1.5.*",
"fuelphp/upload": "2.0",
"omissis/php-cloudfiles": "dev-master",
"mustache/mustache": "*"
},
"suggest": {
"mustache/mustache": "Allow Mustache templating with the Parser package",
"smarty/smarty": "Allow Smarty templating with the Parser package",
"twig/twig": "Allow Twig templating with the Parser package", …Run Code Online (Sandbox Code Playgroud) 我想在fuelphp这样的sql中使用"()".
select * from shop where (item1=$item1 or item2=$item1) and flag=on;
Run Code Online (Sandbox Code Playgroud)
我试着像这样表达;
$shop_query = DB::select()->from('shop');
$shop_query->where(function($shop_query){
$shop_query->where('item1','=',$item1)
->or_where('item2','=',$item1);
$shop_query ->and_where('flag','=','on');
Run Code Online (Sandbox Code Playgroud)
但是,这显示错误:undefined index item1.$item1,当然它有值.
我该怎么解决这个问题?
我查看了建议的代码,但找不到解决问题的答案,所以我问了。
我正在使用 MAMP v2.0.5、MySQL v5.5.9、PHP v5.3.6(根据 MAMP,根据 OS X v5.3.8)和 FuelPHP v1.1,并且是我正在完成教程的框架的新手。本教程的一部分需要使用“油”来执行迁移以更新项目。定义表后,迁移应用 SQL 来生成表。当我这样做时,我收到上述错误。查看了生成的代码后,我找不到任何错误(也许我遗漏了一些明显的东西)。我正在使用 PDO 并且还检查了 my sql_mode = '',它确实如此。从命令行运行 MySQL 查询,phpMyAdmin 确认了这一点。我认为这是一个 MySQL 错误,而不是 FuelPHP/oil 的问题。有人有什么建议吗?
生成的 SQL:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varhcar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`group` int(11) NOT NULL,
`email` varchar(255) NOT NULL,
`last_login` int(11) NOT NULL,
`login_hash` varchar(255) NOT NULL,
`profile_fields` text NOT NULL,
`created_at` int(11) NOT NULL,
`updated_at` int(11) NOT NULL,
PRIMARY KEY …Run Code Online (Sandbox Code Playgroud) 我目前正在第一次尝试 FuelPHP,想知道如何在模型中标记某些键(例如用户名),以及是否可以使用石油来做到这一点。特别是在模型验证方面,例如:
protected static $_properties = array(
'id',
'name' => array(
'data_type' => 'string',
'label' => 'Name',
'validation' => array('required', 'max_length'=>array(100), 'min_length'=>array(10)) //validation rules
),
'username' => array(
'data_type' => 'string',
'label' => 'Username',
'validation' => array('required', 'unique') // does this work?
)
)
Run Code Online (Sandbox Code Playgroud)