Heim  >  Artikel  >  Backend-Entwicklung  >  CakePHP Aktualisiert einen Datensatz

CakePHP Aktualisiert einen Datensatz

PHPz
PHPzOriginal
2024-09-10 17:25:51938Durchsuche

Um einen Datensatz in der Datenbank zu aktualisieren, müssen wir zunächst eine Tabelle mit der Klasse TableRegistry abrufen. Wir können die Instanz mit der Methode get() aus der Registrierung abrufen. Die Methode get() verwendet den Namen der Datenbanktabelle als Argument. Jetzt wird diese neue Instanz verwendet, um einen bestimmten Datensatz abzurufen, den wir aktualisieren möchten.

Rufen Sie die Methode get() mit dieser neuen Instanz auf und übergeben Sie den Primärschlüssel, um einen Datensatz zu finden, der in einer anderen Instanz gespeichert wird. Verwenden Sie diese Instanz, um neue Werte festzulegen, die Sie aktualisieren möchten, und rufen Sie dann schließlich die Methode save() mit der Instanz der Klasse TableRegistry auf, um den Datensatz zu aktualisieren.

Beispiel

Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Code gezeigt.

config/routes.php

<?php use Cake\Http\Middleware\CsrfProtectionMiddleware;
use Cake\Routing\Route\DashedRoute;
use Cake\Routing\RouteBuilder;
$routes->setRouteClass(DashedRoute::class);
$routes->scope('/', function (RouteBuilder $builder) {
   $builder->registerMiddleware('csrf', new CsrfProtectionMiddleware([
      'httpOnly' => true,
   ]));
   $builder->applyMiddleware('csrf');
   //$builder->connect('/pages',['controller'=>'Pages','action'=>'display', 'home']);
   $builder->connect('/users/edit', ['controller' => 'Users', 'action' => 'edit']);
   $builder->fallbacks();
});

Erstellen Sie eine UsersController.php-Datei unter src/Controller/UsersController.php. Kopieren Sie den folgenden Code in die Controller-Datei.

src/controller/UsersController.php

<?php namespace App\Controller;
   use App\Controller\AppController;
   use Cake\ORM\TableRegistry;
   use Cake\Datasource\ConnectionManager;
   class UsersController extends AppController{
      public function index(){
         $users = TableRegistry::get('users');
         $query = $users->find();
         $this->set('results',$query);
      }
      public function edit($id){
         if($this->request->is('post')){
            $username = $this->request->getData('username');
            $password = $this->request->getData('password');
            $users_table = TableRegistry::get('users');
            $users = $users_table->get($id);
            $users->username = $username;
            $users->password = $password;
            if($users_table->save($users))
            echo "User is udpated";
            $this->setAction('index');
         } else {
            $users_table = TableRegistry::get('users')->find();
            $users = $users_table->where(['id'=>$id])->first();
            $this->set('username',$users->username);
            $this->set('password',$users->password);
            $this->set('id',$id);
         }
      }
   }
?>

Erstellen Sie ein Verzeichnis Benutzer unter src/Template, ignorieren Sie es, wenn es bereits erstellt wurde, und erstellen Sie unter diesem Verzeichnis eine Ansicht mit dem Namen index.php. Kopieren Sie den folgenden Code in diese Datei.

src/Template/Users/index.php

<a href="add">Add User</a>
"; echo ""; echo ""; echo ""; echo ""; endforeach; ?>
ID Username Password Edit Delete
".$row->id."".$row->username."".$row->password."EditDelete

Erstellen Sie eine weitere View-Datei im Benutzerverzeichnis mit dem Namen edit.php und kopieren Sie den folgenden Code hinein.

src/Template/Users/edit.php

<?php echo $this->Form->create(NULL,array('url'=>'/users/edit/'.$id));
   echo $this->Form->control('username',['value'=>$username]);
   echo $this->Form->control('password',['value'=>$password]);
   echo $this->Form->button('Submit');
   echo $this->Form->end();
?>

Führen Sie das obige Beispiel aus, indem Sie die folgende URL besuchen und auf Link bearbeiten klicken, um den Datensatz zu bearbeiten.

http://localhost/cakephp4/users

Ausgabe

Nachdem Sie die obige URL aufgerufen haben, werden die Datensätze in der Benutzertabelle wie unten gezeigt angezeigt −

After Visiting

Klicken Sie auf die Schaltfläche „Bearbeiten“ und der folgende Bildschirm wird angezeigt −

Edit Button

Jetzt aktualisieren wir den Namen CakePHP Aktualisiert einen Datensatz in CakePHP Aktualisiert einen Datensatz123 und übermitteln die Details. Der nächste angezeigte Bildschirm sieht wie folgt aus −

CakePHP Aktualisiert einen Datensatz

Das obige ist der detaillierte Inhalt vonCakePHP Aktualisiert einen Datensatz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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