jeudi 25 février 2016

Getting a 500 Internal Server Error with Laravel Chat Web Application

So I was watching this tutorial on creating a chat app with Laravel and Ajax, and I followed everything letter to letter, except for the class Chat extends \Eloquent which I added since it works in my version of Laravel 5.1.

I will try to add everything that is in my application. I have read probably ~15 other questions and all they say is adding a verification token, and I tried, but still to no avail.

This is my console upon load of the app. enter image description here

Also this is what my laravel.log console says:

[2016-02-25 09:12:18] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class 'App\ChatMessage' not found' in /Library/WebServer/Documents/chat/app/Http/Controllers/ChatController.php:63
Stack trace:
#0 {main}  
[2016-02-25 09:12:18] local.ERROR: exception 'PDOException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'chat.chat' doesn't exist' in /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php:333
Stack trace:
#0 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(333): PDO->prepare('select * from `...')
#1 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(662): Illuminate\Database\Connection->Illuminate\Database\{closure}(Object(Illuminate\Database\MySqlConnection), 'select * from `...', Array)
#2 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback('select * from `...', Array, Object(Closure))
#3 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(342): Illuminate\Database\Connection->run('select * from `...', Array, Object(Closure))
#4 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1461): Illuminate\Database\Connection->select('select * from `...', Array, true)
#5 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1447): Illuminate\Database\Query\Builder->runSelect()
#6 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(569): Illuminate\Database\Query\Builder->get(Array)
#7 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(303): Illuminate\Database\Eloquent\Builder->getModels(Array)
#8 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(273): Illuminate\Database\Eloquent\Builder->get(Array)
#9 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(154): Illuminate\Database\Eloquent\Builder->first(Array)
#10 [internal function]: Illuminate\Database\Eloquent\Builder->find(1)
#11 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3490): call_user_func_array(Array, Array)
#12 [internal function]: Illuminate\Database\Eloquent\Model->__call('find', Array)
#13 [internal function]: App\Chat->find(1)
#14 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3504): call_user_func_array(Array, Array)
#15 /Library/WebServer/Documents/chat/app/Http/Controllers/ChatController.php(78): Illuminate\Database\Eloquent\Model::__callStatic('find', Array)
#16 /Library/WebServer/Documents/chat/app/Http/Controllers/ChatController.php(78): App\Chat::find(1)
#17 [internal function]: App\Http\Controllers\ChatController->retrieveTypingStatus()
#18 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(78): call_user_func_array(Array, Array)
#19 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('retrieveTypingS...', Array)
#20 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\ChatController), Object(Illuminate\Routing\Route), 'retrieveTypingS...')
#21 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#22 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#23 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#24 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#25 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#26 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\ChatController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'retrieveTypingS...')
#27 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Http\\Contro...', 'retrieveTypingS...')
#28 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request))
#29 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#30 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#31 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#32 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#33 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#34 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#35 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(699): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#36 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#37 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#38 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#39 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#40 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#41 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#42 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#43 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#45 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#46 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#47 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#48 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#49 /Library/WebServer/Documents/chat/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#50 {main}

Next exception 'Illuminate\Database\QueryException' with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table 'chat.chat' doesn't exist (SQL: select * from `chat` where `chat`.`id` = 1 limit 1)' in /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
Stack trace:
#0 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback('select * from `...', Array, Object(Closure))
#1 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Connection.php(342): Illuminate\Database\Connection->run('select * from `...', Array, Object(Closure))
#2 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1461): Illuminate\Database\Connection->select('select * from `...', Array, true)
#3 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php(1447): Illuminate\Database\Query\Builder->runSelect()
#4 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(569): Illuminate\Database\Query\Builder->get(Array)
#5 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(303): Illuminate\Database\Eloquent\Builder->getModels(Array)
#6 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(273): Illuminate\Database\Eloquent\Builder->get(Array)
#7 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(154): Illuminate\Database\Eloquent\Builder->first(Array)
#8 [internal function]: Illuminate\Database\Eloquent\Builder->find(1)
#9 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3490): call_user_func_array(Array, Array)
#10 [internal function]: Illuminate\Database\Eloquent\Model->__call('find', Array)
#11 [internal function]: App\Chat->find(1)
#12 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php(3504): call_user_func_array(Array, Array)
#13 /Library/WebServer/Documents/chat/app/Http/Controllers/ChatController.php(78): Illuminate\Database\Eloquent\Model::__callStatic('find', Array)
#14 /Library/WebServer/Documents/chat/app/Http/Controllers/ChatController.php(78): App\Chat::find(1)
#15 [internal function]: App\Http\Controllers\ChatController->retrieveTypingStatus()
#16 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(78): call_user_func_array(Array, Array)
#17 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(146): Illuminate\Routing\Controller->callAction('retrieveTypingS...', Array)
#18 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(94): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\ChatController), Object(Illuminate\Routing\Route), 'retrieveTypingS...')
#19 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#20 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#21 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#22 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#23 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(96): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#24 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(54): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\ChatController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'retrieveTypingS...')
#25 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Route.php(174): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Http\\Contro...', 'retrieveTypingS...')
#26 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Route.php(140): Illuminate\Routing\Route->runController(Object(Illuminate\Http\Request))
#27 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(724): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#28 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#29 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#30 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#31 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#32 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(726): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#33 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(699): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#34 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Router.php(675): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#35 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(246): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#36 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#37 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(52): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#38 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(44): Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#39 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
#41 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(32): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#43 [internal function]: Illuminate\Routing\Pipeline->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#44 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#45 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(132): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#46 /Library/WebServer/Documents/chat/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(99): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#47 /Library/WebServer/Documents/chat/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#48 {main}

routes.php

Route::get('/{username}', function ($username) {
    return View::make('chats')->with('username', $username);
});
//ok
Route::post('sendMessage', array('uses' => 'ChatController@sendMessage'));
Route::post('isTyping', array('uses' => 'ChatController@isTyping'));
Route::post('notTyping', array('uses' => 'ChatController@notTyping'));
Route::post('retrieveChatMessages', array('uses' => 'ChatController@retrieveChatMessages'));
Route::post('retrieveTypingStatus', array('uses' => 'ChatController@retrieveTypingStatus'));

chats.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Chats</title>
    <link href="{{asset('css/bootstrap.min.css')}}" rel="stylesheet">
    <link href="{{asset('css/chats.css')}}" rel="stylesheet">
    <meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>

    <div class="col-lg-4 col-lg-offset-4">
        <h1 id="greeting">Hello, <span id="username">{{$username}}</span></h1>

        <div id="chat-window" class="col-lg-12">

        </div>
        <div class="col-lg-12">
            <div id="typingStatus" class="col-lg-12" style="padding: 15px"></div>
            <input type="text" id="text" class="form-control col-lg-12" autofocus="" onblur="notTyping();">
            <input id="button" type="button" value="send" onclick="sendMessage();" />
        </div>
    </div>

    <script src="{{URL::asset('js/jquery-1.11.1.min.js')}}"></script>
    <script src="{{URL::asset('js/chats.js')}}"></script>
</body>
</html>

My Chat.php Model, which I created in app/

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use DB;

class Chat extends \Eloquent
{
  protected $table = 'chats';
}

?>

ChatMessage.php Model

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use DB;

class ChatMessage extends \Eloquent
{
  protected $table = 'chat_messages';
}

?>

my ChatController.php located in app/http/controllers

<?php

namespace App\Http\Controllers;

use App\Chat;
use App\ChatMessage;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
use Illuminate\Support\Facades\Redirect;
use View;
use Illuminate\Support\Facades\Input;

class ChatController extends Controller
{
  public function sendMessage()
  {
    $username = Input::get('username');
    $text = Input::get('text');

    $chatMessage = new ChatMessage();
    $chatMessage->sender_username = $username;
    $chatMessage->message = $text;
    $chatMessage->save();

  }

  public function isTyping()
  {
    $username = Input::get('username');

    $chat = Chat::find(1);
    if($chat->user1 == $username) {
      $chat->user1_is_typing = true;
    } else {
      $chat->user2_is_typing = true;
    }

    $chat->save();

  }

  public function notTyping()
  {
    $username = Input::get('username');

    $chat = Chat::find(1);
    if($chat->user1 == $username) {
      $chat->user1_is_typing = false;
    } else {
      $chat->user2_is_typing = false;
    }

    $chat->save();

  }

  public function retrieveChatMessages()
  {
    $username = Input::get('username');

    $message = ChatMessage::where('sender_username', '!=', $username)->where('read', '=', false)->first();

    if(count($message) > 0)
    {
      $message->read = true;
      $message->save();

      return $message->message;
    }
  }

  public function retrieveTypingStatus()
  {
    $username = Input::get('username');

    $chat = Chat::find(1);

    if($chat->user1 == $username) {
      if($chat->user2_is_typing) {
        return $chat->user2;
      }
    } else {
      if($chat->user1_is_typing) {
        return $chat->user1;
      }
    }

   }


}

?>

my chats.js

var username;



$(document).ready(function()
{
    username = $('#username').html();

    pullData();



    $(document).keyup(function(e) {
        if (e.keyCode == 13) {
          sendMessage();

        }

        else
            {isTyping();}
    });
});

function pullData()
{
    retrieveChatMessages();
    retrieveTypingStatus();
    setTimeout(pullData,3000);
}

function retrieveChatMessages()
{
    $.post('http://localhost/chat/public/index.php/retrieveChatMessages', {username: username}, function(data)
    {
        if (data.length > 0)
            {$('#chat-window').append('<br><div>'+data+'</div><br>');}
    });
}

function retrieveTypingStatus()
{
    $.post('http://localhost/chat/public/index.php/retrieveTypingStatus', {username: username}, function(username)
    {
        if (username.length > 0)
            {$('#typingStatus').html(username+' is typing');}
        else
            {$('#typingStatus').html('');}
    });
}

function sendMessage()
{

    var text = $('#text').val();

    if (text.length > 0)
    {
        $.post('http://localhost/chat/public/index.php/sendMessage', {text: text, username: username}, function()
        {

            $('#chat-window').append('<br><div style="text-align: right">'+text+'</div><br>');
            $('#text').val('');
            notTyping();
        });
    }
}

function isTyping()
{
    $.post('http://localhost/chat/public/index.php/isTyping', {username: username});
}

function notTyping()
{
    $.post('http://localhost/chat/public/index.php/notTyping', {username: username});
}

Both my migrations: 2016_02_25_070212_create_chatmessages_table.php

public function up()
    {
        Schema::create('chat_messages', function(Blueprint $table) {
          $table->increments('id');
          $table->string('sender_username');
          $table->text('message');
          $table->boolean('read')->default(false);
          $table->timestamps();
        });
    }

and: 2016_02_25_065913_create_chats_table.php

  public function up()
    {
        Schema::create('chats', function(Blueprint $table) {

          $table->increments('id');
          $table->string('user1');
          $table->string('user2');
          $table->boolean('user1_is_typing')->default(false);
          $table->boolean('user2_is_typing')->default(false);
          $table->timestamps();

        });
    }

Also this is my Kernel.php file, if for some reason it is needed.

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    ];

    /**
     * The application's route middleware groups.
     *
     * @var array
     */
    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \Illuminate\Foundation\Http\Middleware\VerifyCsrfToken::class,

        ],

        'api' => [
            'throttle:60,1',
        ],
    ];

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ];
}

I have absolutely no idea what to do from hereon. I have scoured google hoping to find an answer that works, so I would greatly appreciate any help, thank you in advance.

EDIT

Now the only thing not working is the app not knowing if the other user is typing.

Error:

enter image description here

This is obviously linked to my function(s) retrieveTypingStatus(), isTyping() and notTyping().

Now in my ChatController, everything using the ChatMessage Model works, but everything using the Chat Model doesn't, why is that?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1p7o4Sm
via IFTTT

Aucun commentaire:

Enregistrer un commentaire