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.
Nehmen Sie Änderungen in der Datei config/routes.php vor, wie im folgenden Code gezeigt.
<?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.
<?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.
<a href="add">Add User</a>
ID | Username | Password | Edit | Delete | ".$row->id." | "; echo "".$row->username." | "; echo "".$row->password." | "; echo "Edit | "; echo "Delete | "; endforeach; ?>
Erstellen Sie eine weitere View-Datei im Benutzerverzeichnis mit dem Namen edit.php und kopieren Sie den folgenden Code hinein.
<?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
Nachdem Sie die obige URL aufgerufen haben, werden die Datensätze in der Benutzertabelle wie unten gezeigt angezeigt −
Klicken Sie auf die Schaltfläche „Bearbeiten“ und der folgende Bildschirm wird angezeigt −
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 −
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!