English 中文(简体)
PHP, Understanding MVC and Codeigniter
原标题:PHP, understanding MVC and Codeigniter

我试图了解真相与和解委员会,并学习 CI框架。 我提出了有关多国旅委会的一些问题和一些关于 CI的基本问题。

(1) 我的问题是: 有一个纽扣的“行文记录仪”,但如果用户在纽顿有标记,则“记录仪”。 核对标识在哪里? 控制权或观点? i)

   //this is view//

     <?php if($_SESSION( logged ) == true):?>
     <a href="logout">Logout</a>
     <?php else: ?>
     <a href="login">login</a>        
     <?php endif; ?>

  //this is controller//

 if($_SESSION( logged ) == true)
 $buttonVal =  logout ;
 else
 $buttonVal =  login ;

 //and we pass these value to view like
 $this->view->load( header ,$someData);

 //this time view is like
 <a href="<?=$somedata[ buttonVal ]?>"><?=$somedata[ buttonVal ]?></a>

i just write theese codes as an example i know they wont w或k, they are imaginary codes, but i guess you got what i mean. Login check should be on controller 或 on view?

2)Should models contain only codes about data and return them to controller? F或 example there is a math, we get 2 value from database and multiply them and display them. Model will multiply 或 controller will do it?

here we load data with model and do math on controller: //model

   $db->query(....);
   $vars=$db->fetchAll();

   return $vars;

   //controller
   $multi = $vars[0] * $vars[1];
   $this-load->view( bla.php ,$mutli);

这里我们把数据与模型相加,而控制器仅从模型中提取数据,以便观察:

   //model

   $db->query(....);
   $vars=$db->fetchAll();
   $multi = $vars[0] * $vars[1];
   return $multi;

   //controller
   $multi = $this->model->multiply();
   $this-load->view( bla.php ,$mutli);

i mean with that, models should do only database w或ks and pass data to controllers, controller do rest of w或k and send view to render? Or models do w或k, controllers get them and send them to view?

3) 涉及密码用户,即每个页上必须有一名头盔,但使用一页的单体字体。

        <?php f或each ($styles as $style): ?>
        <link id="stil" href="<?= base_url() ?>/css/<?= $style ?>.css" rel="stylesheet" type="text/css" />
        <?php endf或each; ?>

这将放在每一页上,因此,在每一个控制者中,就是如此。

$data[ styles ] = array( css1 , css2 );
$this->load->view( header , $headers);

i m 想做主控制器,在其中写这句话,而我所有其他控制人员将予以延长,即见 CI的MY_Controller, 是否与做什么一样? 是否有其他办法这样做?

S或ry f或 bad English and dummy questions. Thanks f或 answers.

最佳回答

This is absolutely view logic, the correct way to do it in my opinion:

 <?php if($logged_in):?>
 <a href="logout">Logout</a>
 <?php else: ?>
 <a href="login">login</a>        
 <?php endif; ?>

<代码>$loct_in 或许可以从电话检索到图书馆方法:

<?php if ($this->auth->logged_in()): ?>

认证是你希望进入全球的那些事物之一,因此,你可以打电话,$this->auth->locol_in() in controller,或出于不同原因(但很可能不是模型)。

In every controller i have

$data[ styles ] = array( css1 , css2 );
$this->load->view( header , $headers);

是的,你可以把控制器类别扩大至<代码>MY_Controller,但你更不用说在观点/表述层。 我通常设立一个总模板:

<html>
<head><!-- load assets --></head>
<body id="my_page">
  <header />
  <?php $this->load->view($view); ?>
  <footer />
</body>
</html>

And write a little wrapper class for loading templates:

class Template {
  function load($view_file, $data) {
      $CI = &get_instance();
      $view = $CI->load->view($view_file, $data, TRUE);
      $CI->load->view( master , array( view  => $view));
  }
}

使用控制器:

$this->template->load( my_view , $some_data);

这使你无法再装上头盔/脚步。 我认为,只要有可能,就认为,像CSS在装上哪条或哪条标题属于哪一种表述逻辑。

就模型而言,你希望这些模型能够重新使用——这样,它们就能够做你需要做的事情,并且与数据操纵(通常只是你的数据库)保持密切联系。 请各位控制人决定数据的内容。

与多国公司无关,但总的来说,你希望尽可能少写法。 离职表明你可能找到更好的解决办法。 这些是广义的(与你的问题一样),但希望能有所帮助。

问题回答

(1) 观点逻辑应当是简单明了的,如果需要的话,多数是假设的。 举例来说,这两种情况都可行,但采用逻辑。 然而,如果你正在核对记录,如果不贴上标签,则改道,则会出现在控制员(或图书馆)。

2) 考虑密码模型,作为获取数据库功能的途径——创建、检索、更新和删除。 我(真实)的行程规则适用于密码用户模式,是从更新、删除或插入问询结果或由单质问得出的结果。 任何可适用的数学均在控制器内发生。 如果这是一次算术业务,则考虑将它列入图书馆职能。 见下文。

3) 扩大控制员是实现这一目标的适当和最佳途径。

* 不要在座标上添加更多内容,但还要了解Codeigniter Libraries。 例如,在你的控制人员中,你可以装上你的图书馆。 然后,你将图书馆职能从你的控制人那里称作图书馆。 图书馆职能称为检索数据库成果的模型。 然后,图书馆的职能是履行这一职能,并将结果退回到控制人员。 管制员手法很少,但由于图书馆和模型,许多工作已经完成。

The user lo-gin check should be in the controller. This should be the first function that need to be invoked in the constructor.

Below i have given the sample code which redirects the user to the login page if he is not logged in, hope this would give you some idea,

<?php

class Summary extends Controller {

    function Summary() {
        parent::Controller();
        $this->is_logged_in();
    }

    function is_logged_in() {
        $logged_in = $this->session->userdata( logged_in );
        if (!isset($logged_in) || $logged_in != true) {
            $url = base_url() .  index.php ;
            redirect($url);
            exit();
        }
    }

?>

可以通过核对会议变量并作出相应的决定来实施《纽伦变化》。

请参看http://codeigniter.com/user_guide/libraries/sessions.html>rel=“nofollow”>link





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签