草庐IT

模型剪枝

全部标签

php - 是否可以在 CakePHP 的同一 View 中对两个不同的模型进行分页和排序?

我想做一些非常直接和简单的事情。我想在同一页上有两组不同的分页数据。这两个不同的集合取决于不同的模型。为了便于讨论,我们称它们为Image和Item。我可以为两个模型设置两个寻呼机,并获得正确的对象集。我可以获得正确的寻呼机链接。但是当涉及到实际跟踪参数链接时,两个寻呼机都会读取参数并假设它们适用于它们。它最终看起来像这样:$this->paginate=array('Item'=>array('conditions'=>array('user_id'=>$id),'limit'=>6,'order'=>array('Item.votes'=>'desc','Item.created'

php - MVC 模型关系 : how to avoid multiple instances of models?

我正在尝试使用ZendFramework创建一个MVC应用程序来管理运动队和运动员。一个团队有一个球员列表,每个球员只属于一个团队。我遇到的问题是实例化多个单独的玩家。在我实例化单个球员的那一刻,即使我之前实例化了属于同一球队的球员,也总是会创建一个新的球队对象。我怎样才能避免代表同一个团队的不必要的多个实例?是否有一些设计模式或技术可以在这里使用? 最佳答案 可能最常用的模式是IdentityMap. 关于php-MVC模型关系:howtoavoidmultipleinstanceso

php - Zend Framework 2 模块和模型架构所需的建议

我想开始使用ZendFramework2并需要一些关于框架架构的指导。我比较了Akrabat'sZF2tutorial有了它ZF1equivalent到目前为止我注意到的主要区别似乎是使用modules.我喜欢模块作为独立且可重复使用的代码片段的想法,我认为它可以帮助分割我的应用程序并使其更易于维护。例如,我可以有以下URL=>module映射:http://example.org/products=>Productsmodulehttp://example.org/services=>Servicesmodulehttp://example.org/oauth=>Oauthmodul

php - 如何将派生列添加到我的 Yii 模型?

在Yii中,我需要向模型中的任何结果集添加一个“派生”列。该列实际上并不存在于数据库表中。例如,假设我有一个Activity模型。只有两种类型的事件:(1)收入,或(2)费用。如果我想添加一个名为income_total或expense_total的列(取决于正在访问的事件的类型),我将如何这样做吗?这是RubyonRails中Activity模型的一个工作示例(我基本上想知道如何做同样的事情,但在Yii中):classActivity{:category=>'Income'}scope:expenses,:conditions=>{:category=>'Expense'}defse

php - 您应该在 Controller 中还是在 MVC 框架的模型中处理 session 数据?

我正在使用MVC框架(特别是PHP的CodeIgniter)。我试图尽可能地遵循“最佳实践”,但我对MVC没有太多经验。从Controller内的session中检索数据对我来说是不好的做法吗?我应该“询问”模型,比如说,特定的session值是“foo”还是“bar”,或者我应该直接在Controller内部这样做吗?我认为我应该在模型内部执行此操作,因为session数据在技术上是数据,但我只是想确定一下。明确地说,我根本没有将session数据存储在数据库中,所以我没有运行查询。 最佳答案 模型通常处理持久保存到某种长期存储的

php - 模型参数设置最佳实践?

我有一个模型,它在SQL中使用一系列条件运行查询。因此,模型需要接受很多参数,即:this->model_name->method($param1,$param2,...)在模型方面,我通常将其设置为functionmethod($param1=NULL,$param2=NULL,...)这些参数中的每一个都是可选的,并且应用程序的用例会有所不同。所以我的问题是:在什么时候(如果有的话)开始通过数组将这些参数传递给方法是有意义的,ala:$params=['param1'=>'whatever','param2'=>'whatever',...]this->model_name->me

php - MVC、模型和数据访问对象

我有一个理论问题,希望有人能帮我弄清楚。我目前正在使用MVC设计模式用PHP编写一个简单的Web应用程序。我已经看到并阅读了一些关于该主题的教程,但它们通常要么过于复杂,要么过于简单。所以我现在拥有的是一个简单的User模型:classUser{private$username;private$group;//user,admin,etc//getters}我还有一个简单的Database类实现了这个类:interfaceDatabaseInterface{publicfunctionconnect();publicfunctiondisconnect();publicfunction

php - 在 Symfony2 中干净地扩展 Propel 模型的策略?

我想这样做://ModelclassnamespaceBookshop\Inventory\Model;useCore\Inventory\Model\ProductasBaseProduct;classBookextendsBaseProduct{//...}//QueryclassnamespaceBookshop\Inventory\Model;useCore\Inventory\Model\ProductQueryasBaseProductQuery;classBookQueryextendsBaseProductQuery{//...}看起来不错,对吧?但是:$book=Bo

php - Laravel/Ardent/User 模型编辑+保存

在laravel/ardent中使用密码编辑用户模型的预期方法是什么?我的问题是,在正确验证用户输入之前,我不想从数据库加载实际的用户模型。当我将密码字段留空时,验证显然会失败,因为需要密码。这是我当前的编辑后操作:publicfunctionpostEdit($id){//ardentautohydratesthismodel$newUser=newUser;//validationfailsif(!$newUser->validate())returnRedirect::action('UsersController@getEdit',$id)->with('error',Lang

php - cakephp 2.x beforeFind关联模型

如何将beforeFind()条件传播到相关模型中?以School、Course和Term为例(应该是Class,但这个词在php中是保留的),这是Course模型上使用的代码:/***beforeFindmethod**Filtersbytheschool(basedontheurl)*@paramarray$queryThefindquery*@returnarray$queryThequerywiththeaddedcondition*/publicfunctionbeforeFind($query=array()){parent::beforeFind($query);$que