Запрос, возвращающий каждую строку ноль в laravel - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь создать приложение чата, используя laravel echo и pusher, все работает, но данные, которые возвращаются в базу данных, имеют нулевое значение или значение по умолчанию, вот код

public function sendMessage(Request $request){
    $conID = $request->conID;
    $message1 = $request->message;
    $user = Auth::user();

    $fetch_userTo = DB::table('messages')
        ->where('conversation_id', $conID)
        ->where('user_to', '!=', Auth::user()->id)
        ->get();
    $userTo = $fetch_userTo[0]->user_to;

    $message = Message::create([
        'user_from' => Auth::user()->id,
        'user_to' => $userTo,
        'conversation_id' => $conID,
        'message' => $message1,
    ]);

    if($message) {
        $userMsg = DB::table('messages')
            ->join('users', 'users.id','messages.user_from')
            ->where('messages.conversation_id', $conID)->get();

        broadcast(new MessagePosted($message))->toOthers();
        return $userMsg;
    }
}

NB:когда я вставляю insert () вместо create в запросе, данные обычно проходят через базу данных, но при трансляции возникает ошибка

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Создать метод проверки атрибутов, которые можно заполнить, в модель Laravel.Вы должны записать все свои столбцы в fillable и затем использовать метод create.

Вторым решением является использование техники Active Record.@Devin Greay ответ полезно использовать Активную запись.

Дополнительная информация посещение https://laravel.com/docs/5.6/eloquent#mass-assignment

0 голосов
/ 11 июня 2018

Вы пытались создать подобное сообщение?вместо использования модельного события?

$message = new Message;

$message->user_from = Auth::user()->id;
$message->$user_to = $userTo;
$message->conversation_id = $conID;
$message->message = $message1;

$message->save();

Таким образом, у вас намного больше контроля, т.е.

if($message->save()) { ... }

Или вы можете заключить все это в транзакцию?

Убедитесь, что ваша модель сообщенияпозволяет поля, которые вы хотите добавить в массив $ fillable

...