下划线在Kohana中是一个特殊字符,并被翻译成目录分隔符,但由于我有一堆在表名中使用下划线的现有代码,我想知道是否可以配置Kohana以某种方式理解它. 最佳答案 一种方法是将模型类放在模型文件夹的子目录中。例如,如果您有一个名为user_profiles的表,您的目录将如下所示:application/...classes/......model/.........user/............profile.php和profile.php会是这样的:我建议采用上述方法(我们在我工作的公司使用它),因为它是“标准”Kohan
由于某些原因,这在Kohana3.2中不起作用:$this->request->headers['Content-Type']='text/xml';自Kohana3.1以来,这有变化吗? 最佳答案 它也不应该在3.1中工作,但这应该:$this->request->headers('Content-Type','text/xml');参见http://kohanaframework.org/3.2/guide/api/Request#headers这是3.1的请求/响应重构更改之一。
我正在计划一个网络应用程序。我在Smarty中使用PHP框架Kohana。我的Web应用程序还将具有移动设备界面。现在,这两个接口(interface)将有很多共同的代码和很多单独的代码。我应该如何组织代码以便:没有重复代码。不会加载不必要的代码。例如,桌面UI特定代码不应加载到iPhone界面中,反之亦然。 最佳答案 您真的有多种选择!您可以选择使用共享的Kohana模块走“2个项目”路线-但我个人不喜欢这种方法。我个人会使用类似的方法作为多语言站点-所以...apache(或其他)将重写m.example.tld/my/page
我已经设置了一个CRON来调用Kohana3中的一个URL。php/home/user/public_html/index.phpmy/route/in/bootstrap.php它似乎可以正常访问URL。但是,我收到了这个错误(在我的主机根据CRON发送的电子邮件中发回)Undefinedindex:HTTP_HOSTSYSPATH/classes/kohana/url.php[40]Sourceofurl.php在Kohana系统文件中。这是因为CRON作业没有发送HTTPheader吗?我该如何解决这个问题并使其正常工作(希望不会破解核心文件)。还是我做错了CRON?更新Pekk
Kohana3的ORM中是否有任何方法可以在模型中运行一段代码,但仅在从数据库加载该模型之后?一个简单的例子是必需的has_one关系。ORM::factory('user')->where('name','=','Bob')->find();现在,如果所有用户都必须拥有一些其他属性,那么如果Bob不存在,则必须创建它怎么办?现在,在运行这条线的地方,我正在检查是否有空主键,如果是这样,我会指示模型添加该关系。但是有没有办法让模型来完成呢?构造函数的问题在于模型可以在从数据库填充之前构建为空,如本例所示,所以我不希望这样。 最佳答案
当针对框架编写项目时,我正在努力找出将项目置于源代码控制之下的最佳实践。在我的情况下,我将使用Mercurial进行源代码控制。大多数PHP框架都有一个“应用程序”文件夹,我应该在其中放置与框架交互的代码。那么最好将应用程序文件夹放入它自己的存储库中,然后为框架文件创建另一个存储库吗?还是将所有内容(包括框架)放在一个存储库中更好?我希望能够拥有相当大的灵active,即我希望能够更换我用于实验的框架版本,同时仍然能够使用稳定版发布更改版本。我在Kohana和ZendFramework框架方面都有经验,所以如果您可以将它们用作引用,那就太棒了。 最佳答案
大家好,我是Kohana的新人,我有一个简短的问题。我有一个站点,其中有三个子部分,按子域组织(即admin.site.com、community.site.com、www.site.com),但每个子部分都将从同一个数据库中提取,因此应该共享相同的模型。有没有办法组织它,以便我可以为每个子域使用相同的Kohana模型/系统/模块文件,但将应用程序文件夹分开?像这样的东西:/home/user/admin/application/bootstrap.phpcache/...index.php/home/user/community/application/bootstrap.phpca
嗨,friend们,如何通过kohana3.0发送电子邮件我试过了但是没有用我的代码是这样的$subject=':MessagetoLeetStreet';$from=array('Clarence','ratnaraju.java@gmail.com');email::send('ratnaraju.bonam@gmail.com',$from,$subject,'hihowruBrother');url::redirect();配置文件是:returnarray('default'=>array('transport'=>'smtp','options'=>array('hostn
如何定义一个路由来捕获所有请求并将它们转发到一个特定的Controller?我已经尝试添加默认路由Route::set('default','((/(/)))')->defaults(array('directory'=>'site','controller'=>'foobar','action'=>'foobar',));或Route::set('default','(.*)')->defaults(array('directory'=>'site','controller'=>'foobar','action'=>'foobar',));到我的bootstrap.php,但它不起作
我试图理解为什么应该使用工厂而不是new运算符来创建对象?例如:$validatePost=Validation::factory($_POST);代替$validatePost=newValidation($_POST);类的静态方法factory做的完全一样:publicstaticfunctionfactory(array$array){returnnewValidation($array);} 最佳答案 根据以下问题:ConstructorsvsFactoryMethods什么时候使用工厂方法模式aclasscan'tant