発生している問題・エラーメッセージ
Review.phpのsaveReview()で、wasRecentlyCreated()を使おうとすると
タイトルに記載のエラーになります。
以下のサイトに記載されている通り、wasRecentlyCreated()はIlluminate\Database\Eloquent\Modelに属していることからuseで指定できているにも関わらず、undefinedとなってしまう理由が分かりませんでした。
https://laravel.com/api/5.8/Illuminate/Database/Eloquent/Model.html
該当のソースコード
ShopController.php
namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Product; use App\Models\Cart; use App\Models\Review; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Mail; use App\Mail\Thanks; use Illuminate\Support\Facades\DB; public function complete(Request $request, Review $review) { $pid = $request->pid; $uid = Auth::id(); $rating = $request->rating; $title = $request->title; $text = $request->text; $review->saveReview($pid, $uid, $rating, $title, $text); }
Review.php
namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Review extends Model { use HasFactory; protected $guarded = [ 'id' ]; public function saveReview($pid, $uid, $rating, $title, $text) { $change_table = $this->updateOrCreate([ 'product_id' => $pid, 'user_id' => $uid, 'rating' => $rating, 'title' => $title, 'text' => $text ]); if ($change_table->wasRecentlyCreated()) { return view('complete'); } }
補足情報(FW/ツールのバージョンなど)
Laravel Framework 8.39.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/23 05:24