我想在 Laravel 中更新資料庫中的資料,但出現錯誤。這是我的路線:
Route::post('/resetPOST', [App\Http\Controllers\Update::class, 'Update'])->name('id');
這是我的頁面:
<form method="POST" action="/resetPOST">
@csrf
<input type="hidden" name="id" value="{{ Auth::user()->id }}">
<input type="text" name="name" class="form-control" required value="{{ Auth::user()->name }}">
<input type="text" name="surname" hljs-string">" required value="{{ Auth::user()->surname }}">
<input type="text" name="middlename" hljs-string">" required value="{{ Auth::user()->middlename }}">
<input type="email" name="email" hljs-string">" autocomplete="off" required value="{{ Auth::user()->email }}">
<input type="date" name="dateofbirth" hljs-string">" required value="{{ Auth::user()->dateofbirth }}">
<input type="text" name="idnumber" hljs-string">" required value="{{ Auth::user()->idnumber }}">
<button type="submit" hljs-string">" >Изменить</button>
</form>
這是我的 App\Http\Controllers\Update 代碼:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class Update extends Controller
{
function update($id, $name, $surname, $middlename, $email, $datebirth, $idnumber){
echo $id;
// DB::table('users')-->where('id', '=', $id ->update(['name' => $name,'surname' => $surname,'middlename' => $middlename,'email' => $email,'datebirth' => $datebirth, 'idnumber' => $idnumber]));
}
}
這是我的錯誤:
ArgumentCountError
Too few arguments to function App\Http\Controllers\Update::update(), 0 passed in D:\openserver\OpenServer\domains\localhost\laravel\right-univercity\vendor\laravel\framework\src\Illuminate\Routing\Controller.php on line 54 and exactly 7 expected
uj5u.com熱心網友回復:
你絕對不應該有id你的形式。用戶將能夠操縱它并更新任何人的個人資料。id應該只取自Auth::user()->id(在您的更新方法中),而不會出現在您的表單中。
嘗試更改為:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class Update extends Controller
{
public function update(Request $request)
{
$name = $request->input('name');
// do the same for everything else..
// echo $name;
DB::table('users')
->where('id', '=', Auth::user()->id)
->update([
'name' => $name
]);
redirect()->back();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493820.html
標籤:拉拉维尔 laravel-8 laravel-9 laravel 认证 laravel-授权
下一篇:shell學習
