Laravel Show Resource ищет неправильный столбец

Я создал модель и контроллер для своих пространств (свойств), которые имеют структуру базы данных; space_id, space_address, space_owner, space_price и так далее...

Однако, когда я посещаю локальный: 8000/проект/пространство/1, я получаю эту ошибку:

Column not found: 1054 Unknown column 'spaces.id' in 'where clause' (SQL: select * from spaces where spaces.id = 3 limit 1)

Функция:

public function show($id)
{
        $space = Space::find($id);
        return view('space.show')->with('space', $space);

}

Это моя модель, если это поможет:

class Space extends Model
{
    protected $table = 'spaces';
    public $primarykey = 'space_id';
}

Разве первичный ключ $ не должен быть защищен, а не общедоступен?

Frnak 08.04.2019 13:02

@FrankProvost изменил его сейчас

user3479267 08.04.2019 13:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
416
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В вашей таблице есть space_id, но запрос Eloquent ищет столбец id. Вы должны обновить имя столбца space_id на id, тогда оно будет работать.

Ответ принят как подходящий

вы должны использовать

$primaryKey = 'space_id';

вместо :

$primarykey = 'space_id';

Обратите внимание, что чувствительность к регистру для имен переменных в PHP:

Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

хорошая находка! Не заметил минор к

Frnak 08.04.2019 13:06

вы должны правильно установить свой первичный ключ в своей модели:

protected $primaryKey = 'space_id';

Другие вопросы по теме