标签: model-view-controller

在MVC中放置逻辑的适当位置

我正在用yii框架编写一个mvc web应用程序.我有一个业务逻辑,我不确定在哪里放置它. $usernameid=$model->random_id_gen('5');是我正在谈论的功能.

SiteController:

<!-- snip -->
      public function actionIndex()
       {
         $model = new Users();

         if (isset($_POST['Users'])) {
            //call the active record table model
            $model = new Users();

            //massively assign attributes
            $model->attributes=$_POST['Users'];

            //generate random userid
            $usernameid=$model->random_id_gen('5');


<!-- snip -->
Run Code Online (Sandbox Code Playgroud)

用户活动记录类:

 <!-- snip -->
  public function random_id_gen($length)
    {
        $characters = '23456789ABCDEFGHJKLMNPQRSTUVWXYZ';
        $max = strlen($characters) - 1;
        $string = '';

        for ($i = 0; $i < $length; $i++) {
            $string .= $characters[mt_rand(0, $max)];
        }

        return $string;
    }
Run Code Online (Sandbox Code Playgroud)

我的问题:这个id生成器函数是否属于Active记录模型?它应该在控制器中吗?它应该是一个单独的模型,因为它是"业务逻辑",但与数据库没什么关系?

我正在努力改善我的MVC课程"膨胀".提前谢谢你们.

更新 我正在寻找一个特定的解决方案.如果有这样的约定,似乎问题已经发展成"应该把图书馆放在哪里".

model-view-controller yii

0
推荐指数
1
解决办法
2736
查看次数

我应该在视图,控制器或模型中加粗文本吗?(Codeigniter,并非特定于它)

让我们参考Yelp上的" 排序依据 "部分:

我有3个anchor()函数生成3个链接.当选择"排序依据"选项之一时,我想删除超链接/锚点()并将其加粗以显示它被选中,就像在上面的页面上一样.

现在我正在考虑对$ arr执行uri_to_assoc(),因为所选的选项将在url中,如controller/function/sort_by/best_reviews/..,然后基于什么是键(best_reviews)或元素(sort_by) ,在视图中使用以下代码

<?php
$arr = uri_to_assoc(3);

if($arr['sort_by'] == 'best_reviews') {
    echo "<strong>Best Reviews</strong>";
} else {
    anchor('controller/function/sort_by/best_reviews', 'Best Reviews');
]
?>
Run Code Online (Sandbox Code Playgroud)

现在我相信MVC的想法是在视图中保留一些PHP代码(逻辑代码?).在这种情况下,您是将上面的代码放在视图中,还是在控制器/模型中使用该逻辑然后传递最终代码以在数组中显示(echo或anchor())并在视图中回显数组?.

.

迷你问题(PHP)

如果在url中不存在/ sort_by/variable的情况下未定义$ arr ['sort_by'],则语句if($ arr ['sort_by'] =='best_reviews')将给出错误.您是否将所有上述代码嵌套在if(isset($ arr ['sort_by'])){}中?

php model-view-controller codeigniter

0
推荐指数
1
解决办法
467
查看次数

PHP中MVC的良好实现

我在RoR中做了一些开发,现在我正在尝试用PHP创建一些东西.

我认为MVC架构是我当前项目的理想框架(用户,应用程序数据,购买等)

是否在Web上实现了MVC,或者PHP与Rails的工作方式不同,PHP中的每个MVC都必须手工制作?

我的google fu很弱,我真的找不到任何结论.

php model-view-controller design-patterns

0
推荐指数
1
解决办法
396
查看次数

Asp.net设计模式

我是一名初级开发人员,他已经掌握了基础知识并且也有一些经验,但是当谈到从头开始构建项目时,我在编写良好的可维护代码方面毫无用处.我知道有很多设计模式用于此目的,而且我也知道asp.net MVC3.现在,我是否需要阅读asp.net设计模式书籍才能成为asp.net的优秀架构师,还是应该专注于MVC,因为它是新的更好的设计模式?我有这样的印象,设计模式和MVC是分开的,因为MVC是它自己的"强制"设计模式.我需要为自己澄清这一点并欣赏所有答案!谢谢.

model-view-controller asp.net-mvc design-patterns coding-style asp.net-mvc-3

0
推荐指数
1
解决办法
1283
查看次数

上传文件时System.UnauthorizedAccessException

每当我尝试在ASP.NET MVC应用程序中上传文件时,我都会收到此错误.谁能帮我吗.抛出的错误是System.UnauthorizedAccessException

访问路径'C:\ inetpub\wwwroot\IBGTxalert\TxAlert\TxAlert.Web\Files\linqtoexcel.xlsx'被拒绝.

c# model-view-controller asp.net-mvc

0
推荐指数
1
解决办法
3900
查看次数

将视图置于模型中是不好的行为?(Backbone.js的)

嗨,我有一个内部和内部都有模型的模型......我需要对所有这些模型进行查看,然后在一个雇佣组织中找到它们.

A Model
|
+---B Model
|   |
|   +----C Model
|   |
|   +----C Model
|
+---D Model
Run Code Online (Sandbox Code Playgroud)

认为所有模型都有视图,例如当B模型渲染函数时,我需要调用两个C模型渲染函数.

所以我决定通过重写初始化方法在模型中创建所有相关的视图.

所以我的问题是这种行为对mvc架构有害吗?还是天生的?

javascript model-view-controller backbone.js backbone-relational

0
推荐指数
1
解决办法
415
查看次数

Microsoft JScript运行时错误:对象不支持属性或方法'validate'

此问题是我收到错误,Microsoft JScript运行时错误:对象不支持属性或方法'validate'.无法弄清楚原因.有什么建议?

<form id="ContactUs" class="float-left" autocomplete="off">
    <div class="box-content">
            <div id="Department-List" class="field clearfix">            
                <select id="DepartmentList" size="1" name="DepartmentList" class="required">
                   <% foreach(var options in (List<string>)ViewBag.DepartmentList) { %>
                        <option id="<%:options%>" value="<%:options%>" ><%:options%></option>
                    <% } %>
                </select>
            </div>
            <div class="field clearfix">
                <label class="float-left">NAME:</label>
                <input type="text" id="Name" class="required full-width text radi-4" minlength="3"/>
            </div>
            <div class="field clearfix">
                <label class="float-left">PHONE:</label>
                <input type="text" id="Phone" class="required PhoneNumbers full-width text radi-4" />
            </div>
            <div class="field clearfix">
                <label class="float-left">EMAIL:</label>
                <input type="text" id="SendersEmail" class="required email full-width text radi-4"/>
            </div>
            <div class="field clearfix">
                <label …
Run Code Online (Sandbox Code Playgroud)

c# validation model-view-controller jquery

0
推荐指数
1
解决办法
1万
查看次数

Backbone.js模型中的依赖属性

如果我的模型中的两个值(a或b)中的任何一个发生变化,则两个监听视图需要计算第三个值c.

//Pseudo 
mainModel 
  a : 2000 
  b : 3000

view1 
helper.calculateC(this.model.get(a), this.model.get(b)) 

view2 
helper.calculateC(this.model.get(a), this.model.get(b)) 
Run Code Online (Sandbox Code Playgroud)

我宁愿将依赖属性c放在模型中(因为计算相当复杂,以后可能会允许"c"被用户覆盖.)什么是好的做法?我应该扩展模型,制作一个子模型还是什么?

谢谢!

javascript model-view-controller backbone.js

0
推荐指数
1
解决办法
1070
查看次数

设计 - 依赖地狱解决方案?

我们使用MVC架构,其模型由BLL和DAL组成.

因此,我们为我们的系统开发"模块",我正在实现的特定模块使用了大量相同的依赖项.特别是一个类有20个依赖项.目前,默认构造函数正在创建一个默认的具体实现,我们还有第二个构造函数[第一个使用],它允许一个注入自己的依赖项(即测试).

20个构造函数参数看起来像一个非常令人讨厌的代码味道.另一个烦人的事情是,当我开始添加常用功能时,我需要在每个类中添加构造函数代码和字段,经常一遍又一遍地重复相同类型的代码.

IoC容器似乎是一个自然的解决方案,但问题是我能走多远?我是否包含DAL依赖项和BLL依赖项?那么"助手"或"服务"依赖呢?似乎在某个时刻我只是重新创建"命名空间"结构,能够像静态类一样引用我的类,在这一点上我质疑我实际上正在获得什么.

我在思考这个问题时遇到了麻烦.有没有人有一个优雅的解决方案或建议?

c# model-view-controller dependency-injection

0
推荐指数
1
解决办法
502
查看次数

MVC模式(需要模型中的视图对象)

我在我的应用程序中使用MVC模式.

现在我需要模型中的视图对象.

我不想在模型中将视图添加为我的函数的参数(因为我在其他函数中也需要它).而且我不想继续传递它.

是否应该将视图添加为模型构造函数的属性?

还有另外一种方法吗?我不应该首先需要模型中的视图对象吗?

这样做的首选方式是什么?

例:

调节器

function someAction()
{
    $somemodel->add();
}
Run Code Online (Sandbox Code Playgroud)

模型

class SomeModel()
{
    function add()
    {
        if ($view->user) {
            // do stuff
            $this->mail();
        } else {
            // do other stuff
        }
    }

    function mail()
    {
        Mailer::send($view->user->email, $this->getitems(), $view->layout);
    }

    function getitems()
    {
        return Items::getitems($view->user);
    }
}
Run Code Online (Sandbox Code Playgroud)

php model-view-controller

0
推荐指数
1
解决办法
382
查看次数