find() 這是正確的:
$user = Users::where('userid', '=', $id)->get();
return redirect('/register/view');
這是不正確的:
$user = Users::find($id);
return redirect('/register/view');
delete() 這是正確的:
$user = Users::where('userid', '=', $id)->get();
if(!is_null($user))
{
Users::where('userid', '=', $id)->delete();
}
return redirect('/register/view');
這是不正確的:
$user = Users::where('userid', '=', $id)->get();
if(!is_null($user))
{
$user->delete();
}
return redirect('/register/view');
用戶模型:
class Users extends Model
{
use HasFactory;
protected $table = 'users';
protected $primarykey = 'userid';
}
兩個代碼都是正確的,但在我的情況下不是。我不知道為什么。誰能告訴我出了什么問題。
uj5u.com熱心網友回復:
如果您正在尋找id(或userid在您的情況下)的單個記錄,請不要使用->get():
$user = User::where('userid', $id)->first();
// OR
$user = User::find($id);
洗掉時,也不要使用->get(). is_null的結果->get()將始終是false,因為->get()回傳 a Collection,而不是null。
$user = User::where('userid', $id)->delete();
// OR
$user = User::findOrFail($id)->delete();
注意:您的模型應該是User,并且在資料庫中設定主鍵的屬性是primaryKey,而不是primarykey:
class User extends Model {
use HasFactory;
protected $table = 'users';
protected $primaryKey = 'userid';
}
你在這里誤解和濫用 Laravel 很多。->get()永遠不應該用于單個記錄,模型名稱是單數的,大小寫問題等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/521855.html
標籤:拉拉维尔
