我正在构建一个 CRUD 笔记应用程序,我有这个控制器,我正在尝试获取用户的所有笔记以显示在索引页中,我也在使用 laravel breeze。IDE 显示“未定义方法‘id’”。我尝试了在 laracast 和这里能找到的所有解决方案,但都不起作用,我知道我忘记了一些东西,我只是记不起来是什么,我已经有一段时间没有使用 laravel 了。如果你们能帮助我,那就太好了!谢谢
<?php
namespace App\Http\Controllers;
use App\Models\Note;
use Inertia\Inertia;
use App\Http\Resources\NoteResource;
use App\Http\Requests\StoreNoteRequest;
use App\Http\Requests\UpdateNoteRequest;
class NoteController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index()
{
//
$notes = Note::where('user_id', auth()->id())->get();
return Inertia::render('Notes/Index', [
'notes' => NoteResource::collection($notes),
]);
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
return Inertia::render('Notes/Create');
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreNoteRequest $request)
{
//
$note = Note::create([
'user_id' => auth()->id,
'title' => $request->title,
'content' => $request->content,
'is_pinned' => $request->is_pinned,
'color' => $request->color,
]);
return redirect()->route('notes.show', $note)->with('success', 'Note created successfully');
}
/**
* Display the specified resource.
*/
public function show(Note $note)
{
//
return Inertia::render('Notes/Show', [
'note' => new NoteResource($note),
]);
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Note $note)
{
//
return Inertia::render('Notes/Edit', [
'note' => new NoteResource($note),
]);
}
/**
* Update the specified resource in storage.
*/
public function update(UpdateNoteRequest $request, Note $note)
{
//
$note->update([
'title' => $request->title,
'content' => $request->content,
'is_pinned' => $request->is_pinned,
'color' => $request->color,
]);
return redirect()->route('notes.show', $note)->with('success', 'Note updated successfully');
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Note $Note)
{
//
$Note->delete();
return redirect()->route('notes.index')->with('success', 'Note deleted successfully');
}
public function togglePin(Note $note)
{
$note->update([
'is_pinned' => !$note->is_pinned,
]);
return redirect()->back()->with('success', 'Note pinned successfully');
}
}