Laravel Capsule устанавливает первичный ключ

Я хочу реализовать слой между моей пользовательской структурой и Eloquent, другими словами, я хочу использовать Eloquent в качестве ORM для моей структуры ...

Я начал с этого https://github.com/illuminate/database

Как видите, выглядит довольно просто, после загрузки Eloquent Capsule становится доступной следующим образом:

Capsule::table('users')->where('votes', '>', 100)->get();

Таким же образом должно работать это:

Capsule::table('users')->find(3);

Где Eloquent находит пользователя id=3

Но что было бы, если бы первичный ключ таблицы установил что-то другое вроде user_id

Я знаю, что в Laravel я могу установить первичный ключ модели

public $primaryKey = 'user_id';

Но, к сожалению, это не мой случай, поэтому я блуждаю, если разработчики Laravel не реализуют что-то для других разработчиков, чтобы упростить использование Eloqunet для других фреймворков, или, по крайней мере, я не могу этого узнать?

Пожалуйста, помогите мне с этим .. дайте мне знать, если вам нужно, чтобы я написал более подробную информацию ...

Стоит ли изучать 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 и хотите разрабатывать...
0
0
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы не можете использовать только построитель запросов. Вы можете посмотреть код Query / Builder.php и увидеть, что метод find жестко запрограммирован с помощью id:

/**
 * Execute a query for a single record by ID.
 *
 * @param  int    $id
 * @param  array  $columns
 * @return mixed|static
 */
public function find($id, $columns = ['*'])
{
    return $this->where('id', '=', $id)->first($columns);
}

Просто используйте where('user_id', $id)->first(), если вы не хотите следовать соглашениям Laravel и просто используете построитель запросов.

Помимо этого, Eloquent Models должен работать так, как вы хотите, но вы не будете использовать Capsule для этих запросов.

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