Причина, по которой свойство не существует, состоит в том, что результатом является коллекция вместо массива (см. В комментариях к оператору)
Итак, вы пытаетесь получить note
из коллекции, которая выглядит например:
[
{
"id":1,
"note":"to do one",
"created_at":"2020-04-12 08:25:00",
"updated_at":"2020-04-13 07:20:54",
"description":"description for todo one"
}
]
Когда вы вызываете $todo->note
, вы ищете эту строку:
[
{ # <-- You're searching this line
"id":1,
"note":"to do one",
"created_at":"2020-04-12 08:25:00",
"updated_at":"2020-04-13 07:20:54",
"description":"description for todo one"
}
]
Таким образом, ваш код возвращает коллекцию вместо массива. Массив будет выглядеть следующим образом:
{ # <-- Starts with open curly bracket instead of open square bracket
"id":1,
"note":"to do one",
"created_at":"2020-04-12 08:25:00",
"updated_at":"2020-04-13 07:20:54",
"description":"description for todo one"
}
Вам необходимо выяснить, почему он отправляет коллекцию.
По виду вашего кода я обнаружил потенциальную проблему с этим:
public function show(todo $todo) # <- What is 'todo $todo'?
{
$todo=todo::find($todo);
return view('demo')->with('todo',$todo);
}
Что такое todo $todo
, вы вызываете функцию показа где-нибудь? По умолчанию Laravel отправляет этот идентификатор через веб-маршрут. Поэтому попробуйте обновить его следующим образом:
public function show($id) #<-- change this to '$id'
{
$todo = Todo::find($id); #<-- Change this to '$id'
return view('demo')->with('todo',$todo);
}
Дайте мне знать, если это разрешит это.
Редактировать: И вам действительно нужно исправить свою заглавную букву.