Informationen zum Betrieb von ZendFramework2 zum Herstellen einer Verbindung zur Datenbank

不言
Freigeben: 2023-04-01 11:00:02
Original
1512 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Funktionsweise von ZendFramework2 zum Herstellen einer Verbindung zur Datenbank vor. Er analysiert die spezifischen Schritte, Konfigurationsmethoden, zugehörigen Betriebsfähigkeiten und Vorsichtsmaßnahmen von ZendFramework2 zum Herstellen einer Verbindung zur Datenbank in Form eines vollständigen Beispiels siehe diesen Artikel

Das Beispiel beschreibt die Funktionsweise von ZendFramework2 zum Herstellen einer Verbindung zur Datenbank. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Im Vergleich zu zf1 ermöglicht uns zf2 den Betrieb der Datenbank. Mein persönlicher Eindruck ist, dass es einfacher ist, Felder zu aliasen, aber den Betrieb der Datenbank Obwohl die Konfiguration einmal geschrieben ist, besteht grundsätzlich keine Notwendigkeit, sie zu verschieben, sie ist jedoch immer noch umständlicher als die Konfiguration in 1.

Auch hier können Sie einen Blick auf den Quellcode werfen. . .

Module.php

public function getServiceConfig()
{
    return array(
      'factories' => array(
        'Student\Model\StudentTable' => function($sm) {
          $tableGateway = $sm->get('StudentTableGateway');
          $table = new StudentTable($tableGateway);
          return $table;
        },
        'StudentTableGateway' => function ($sm) {
          $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
          $resultSetPrototype = new ResultSet();
          $resultSetPrototype->setArrayObjectPrototype(new Student());
          return new TableGateway('cc_user', $dbAdapter, null, $resultSetPrototype);//table Name is cc_user
        },
      ),
    );
}
Nach dem Login kopieren

student.php hinzufügen Das ist Model/Student.php

namespace Student\Model;
class Student
{
  public $id;
  public $name;
  public $phone;
  public $mark;
  public $email;
  public function exchangeArray($data)//别名
  {
    $this->id   = (!empty($data['cc_u_id'])) ? $data['cc_u_id'] : null;
    $this->name = (!empty($data['cc_u_name'])) ? $data['cc_u_name'] : null;
    $this->phone = (!empty($data['cc_u_phone'])) ? $data['cc_u_phone'] : null;
    $this->mark = (!empty($data['cc_u_mark'])) ? $data['cc_u_mark'] : null;
    $this->email = (!empty($data['cc_u_email'])) ? $data['cc_u_email'] : null;
  }
}
Nach dem Login kopieren

StudentTable.php Model/StudentTable.php

<?php
namespace Student\Model;
use Zend\Db\ResultSet\ResultSet;
use Zend\Db\TableGateway\TableGateway;
use Zend\Db\Sql\Select;
use Zend\Paginator\Adapter\DbSelect;
use Zend\Paginator\Paginator;
class StudentTable
{
  protected $tableGateway;
  protected $table=&#39;cc_user&#39;;
  public function __construct(TableGateway $tableGateway)
  {
    $this->tableGateway = $tableGateway;
  }
  public function fetchAll($paginated)
  {//分页
     if($paginated) {
      // create a new Select object for the table album
      $select = new Select(&#39;cc_user&#39;);
      // create a new result set based on the Student entity
      $resultSetPrototype = new ResultSet();
      $resultSetPrototype->setArrayObjectPrototype(new Student());
      // create a new pagination adapter object
      $paginatorAdapter = new DbSelect(
        // our configured select object
        $select,
        // the adapter to run it against
        $this->tableGateway->getAdapter(),
        // the result set to hydrate
        $resultSetPrototype
      );
      $paginator = new Paginator($paginatorAdapter);
      return $paginator;
    }
    $resultSet = $this->tableGateway->select();
    return $resultSet;
  }
  public function getStudent($id)
  {
    $id = (int) $id;
    $rowset = $this->tableGateway->select(array(&#39;id&#39; => $id));
    $row = $rowset->current();
    if (!$row) {
      throw new \Exception("Could not find row $id");
    }
    return $row;
  }
  public function deleteStudent($id)
  {
    $this->tableGateway->delete(array(&#39;id&#39; => $id));
  }
  public function getLIValue(){
    return $this->tableGateway->getLastInsertValue();
  }
}
Nach dem Login kopieren

Student /IndexController.php ruft die Datenbank auf

public function indexAction(){
    /* return new ViewModel(array(
      &#39;students&#39; => $this->getStudentTable()->fetchAll(), //不分页
    ));*/
    $page=$this->params(&#39;page&#39;);//走分页 在model.config.php里面设置:
/*      model.config.php      
&#39;defaults&#39; => array(
 &#39;controller&#39; => &#39;Student\Controller\Index&#39;,
 &#39;action&#39;   => &#39;index&#39;,
 &#39;page&#39;=>&#39;1&#39;,
),
*/
    $paginator = $this->getStudentTable()->fetchAll(true);
    // set the current page to what has been passed in query string, or to 1 if none set
    $paginator->setCurrentPageNumber((int)$this->params()->fromQuery(&#39;page&#39;, $page));
    // set the number of items per page to 10
    $paginator->setItemCountPerPage(10);
    return new ViewModel(array(
      &#39;paginator&#39; => $paginator //模板页面调用的时候的名字
    ));
  //print_r($this->getStudentTable()->fetchAll());
}
Nach dem Login kopieren

ruft die Vorlagenseite auf

<?php foreach ($this->paginator as $student) : ?>
<tr id="<?php echo $this->escapeHtml($student->id);?>">
  <td><?php echo $this->escapeHtml($student->id);?></td>
  <td><?php echo $this->escapeHtml($student->name);?></td>
  <td><?php echo $this->escapeHtml($student->phone);?></td>
  <td><?php echo $this->escapeHtml($student->email);?></td>//应用了在Student.php的别名
  <td><?php echo $this->escapeHtml($student->mark);?></td>
    <td><a href=&#39;#&#39;  class=&#39;icol-bandaid editUserInfo&#39;></a>  
      <a href=&#39;#&#39; class=&#39;icol-key changePwd&#39;></a>  
      <a herf=&#39;#&#39;  class=&#39;icol-cross deleteStud&#39;></a>
    </td>
  </tr>
<?php endforeach;?>
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels, der für das Lernen aller hilfreich sein wird Bitte achten Sie auf PHP Chinese Net!

Verwandte Empfehlungen:

Zend Nutzungsanalyse der Bootstrap-Klasse im Framework

Analyse gängiger Datenbankoperationen, die vom Yii2-Framework implementiert werden

Über die Funktionsweise des Zend Framework implementiert Sitzungen werden im Memcache gespeichert

Das obige ist der detaillierte Inhalt vonInformationen zum Betrieb von ZendFramework2 zum Herstellen einer Verbindung zur Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage