Laravel принадлежит к добавлению двойных кавычек в исполняемый запрос

Я использую Laravel с соединениями MYSql и MongoDB. При использовании отношения Eloquent ORM между MYSQL и MongoDB я получаю следующую ошибку:

"Call to a member function prepare() on null"

Модель MySQL: Audios.php

class Audios extends Model
{
    protected $table = 'audios';

    public function getAudioPlaylist()
    {
        return $this->hasMany('AudioPlaylists:;class','id','audio_id');
    }
 }

Модель Mongo: AudioPlaylist.php

use Jenssegers\Mongodb\Eloquent\Model as MongoModel;

class AudioPlaylist extends MongoModel
{
    protected $collection = 'audio_playlists';
    protected $connection = 'mongodb';

    public function playlistAudioTracks()
    {
        return $this->belongsTo(Audios::class, 'audio_id', 'id');
    } 
}

Коллекция Монго:

{
    "_id" : ObjectId("5c2f519368c5f214022c4102"),
    "playlist_id" : "5c2cace668c5f2382e5ef464", 
    "audio_id" : 1, 
    "updated_at" : ISODate("2019-01-04T12:29:07Z"), 
    "created_at" : ISODate("2019-01-04T12:29:07Z")
}

Звуковая таблица содержит соответствующий id 1. Отношение hasMany на модели Audios работает нормально, тогда как обратное не работает.

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

[2019-01-04 18:41:13] production.INFO: select audios.*,audios.id as is_favourite from "audios" where "audios"."id" in (?) and "is_active" = ?

'AudioPlaylists:;class' - это опечатка?

apokryfos 04.01.2019 16:12
Стоит ли изучать 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 и хотите разрабатывать...
2
1
204
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

наконец получил решение после долгого дня борьбы. Решение заключалось в том, чтобы добавить:

$connection  = 'mysql';

в модели Audios.php, поскольку отношение ownTo из модели AudioPlaylists пытается сформировать запрос с использованием экземпляра MongoDB, поскольку атрибут подключения отсутствует.

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