前提
laravel8.xでクエリビルダのDELETE文(https://readouble.com/laravel/8.x/ja/queries.html#delete-statements)
実装中(削除ボタン押下時)に以下のエラーメッセージが発生しました。
実現したいこと
削除ボタンを押すとデータが削除されるようにしたいです。
また、どのような状況で発生するエラーなのかを知りたいです。
発生している問題・エラーメッセージ
Call to undefined method App\Models\SystemUser::roles()
該当のソースコード
php
1// SystemUser.php 2<?php 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; 8use Encore\Admin\Traits\DefaultDatetimeFormat; 9use Illuminate\Auth\Authenticatable; 10use Encore\Admin\Auth\Database\HasPermissions; 11 12class SystemUser extends Model implements AuthenticatableContract 13{ 14 use Authenticatable; 15 use HasPermissions; 16 use DefaultDatetimeFormat; 17 use HasFactory; 18 19 protected $guarded = ['id']; 20} 21 22// controller 23class ConfigController extends Controller { 24 /** 25 * ユーザーの削除 26 */ 27 public function delete(Request $request) { 28 $systemUser = systemUser::find($request->id); 29 $systemUser->delete(); 30 return redirect('URL'); 31 } 32} 33 34// view 35@foreach($systemUsers as $systemUser) 36 <form method="post" action="/admin_delete/{{ $systemUser->id }}" onsubmit="return confirm('削除してもよろしいですか?')"> 37 @csrf 38 <button>削除</button> 39 </form> 40@endforeach
試したこと
$systemUser->delete();
の部分をコメントアウトするとエラーは出ずページ遷移もしません。
補足情報(FW/ツールのバージョンなど)
Laravel Framework 8.83.5
追記
・モデル名などの表示
・エラー画像の差し替え
エラーの発生しているところ、提示されているコードの中にはありませんよ
laravelが返すエラーページの内容です。
宜しくお願いします。
Illuminate\Database\Eloquent\Model::throwBadMethodCallException
vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php:
###
* @return mixed
*
* @throws \BadMethodCallException
*/
protected function forwardDecoratedCallTo($object, $method, $parameters)
{
$result = $this->forwardCallTo($object, $method, $parameters);
if ($result === $object) {
return $this;
}
return $result;
}
/**
* Throw a bad method call exception for the given method.
*
* @param string $method
* @return void
*
* @throws \BadMethodCallException
*/
protected static function throwBadMethodCallException($method)
{
該当箇所ー>throw new BadMethodCallException(sprintf(
'Call to undefined method %s::%s()', static::class, $method
));
}
}
###
エラー画面の全体をスクショ貼ってください
提示されたところだけ見ても回答できません。
書くべきことは「User.php」と「roles()を使ってる箇所」
わざわざ赤で隠しているコントローラーにミスがあるはずなんだけど。
回答1件
あなたの回答
tips
プレビュー

