Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Jaytee's avatar

I think it's the vue datatable package. One way to confirm this, involves create a view file in resources/views, perhaps call it test.blade.php. I know you're using an SPA, but you can still return views.

Next, set up a controller and route.

Route::get('test', 'TestController@show');

In the controller method, fetch a training record, (or all training records, up to you) and then load them into the view:

return view('test', compact('training'));

Then echo them out in the view. Navigate to the route, See what the result is. If the result is fine in the view, it concludes that the datatable package is indeed the problem source.

GodziLaravel's avatar

@jaytee

Hello ,

I created a test view and as you asked me :

controller :

    public function show()
    {
        $training = Training::with([
            'trainers', 'categories', 'participants'
        ])->findOrFail(7);


        return view('test', compact('training'));
    }

view:

<h1>test</h1>
{{$training}}

The result is without "http:"

test
{"id":7,"title":"training l after adding the permission","begin_date":"2019-11-05 00:00:00","end_date":"2019-11-05 00:00:00","created_at":"2019-11-05 15:19:35","updated_at":"2019-11-08 18:44:00","level_id":1,"certified":true,"external_urls":[{"url":null,"name":""}],"certification_number":"AZD557AZD7","certification_expired_date":"2019-07-13","intern":true,"certification_body_name":"name","external_trainer_name":null,"external_trainer_company_name":null,"levelName":"level kiwi","trainers":[{"name":"mostafa abdellaoui","last_name":"mostafa","first_name":"abdellaoui","pivot":{"training_id":7,"user_id":503}},{"name":"bruno sas23","last_name":"bruno","first_name":"sas23","pivot":{"training_id":7,"user_id":508}}],"categories":[{"id":2,"competence":"competence name 2","created_at":"2019-10-22 14:54:51","updated_at":"2019-10-22 14:54:51","wheel_id":1,"pivot":{"training_id":7,"category_id":2}},{"id":3,"competence":"competance 3","created_at":"2019-10-23 12:28:51","updated_at":"2019-10-23 12:28:55","wheel_id":1,"pivot":{"training_id":7,"category_id":3}}],"participants":[{"name":"bruno sas23","last_name":"bruno","first_name":"sas23","pivot":{"training_id":7,"user_id":508}}],"level":{"id":1,"name":"level kiwi","competence_level":0,"description":"basic level","created_at":"2019-10-22 12:40:27","updated_at":"2019-10-22 12:40:23"}}
Jaytee's avatar

I don't know then. I'm lost for solutions.

Last things to try would be to remove the vendor folder, and install it again with composer install.

If that fails, updating your PHP and PostgreSQL to the same versions that you use on local, where it works, would be the option.

Cronix's avatar

What does

{!! $training !!}

or

{{ dump($training) }}

show? Same thing?

GodziLaravel's avatar

@cronix

Yes same thing , without "http:" as you can see here : "title" => "training l after adding the permission"

{!! $training !!}


training {#491 ▼ #casts: array:1 [▶] #appends: array:1 [▶] #connection: "pgsql" #table: "trainings" #primaryKey: "id" #keyType: "int" +incrementing: true #with: [] #withCount: [] #perPage: 15 +exists: true +wasRecentlyCreated: false #attributes: array:15 [▼ "id" =>7 "title" => "training l after adding the permission" "begin_date" => "2019-11-05 00:00:00" "end_date" => "2019-11-05 00:00:00" "created_at" => "2019-11-05 15:19:35" "updated_at" => "2019-11-08 18:44:00" "level_id" =>1 "certified" =>true "external_urls" => "[{"url": null, "name": ""}]" "certification_number" => "AZD557AZD7" "certification_expired_date" => "2019-07-13" "intern" =>true "certification_body_name" => "name" "external_trainer_name" =>null "external_trainer_company_name" =>null] #original: array:15 [▼ "id" =>7 "title" => "training l after adding the permission" "begin_date" => "2019-11-05 00:00:00" "end_date" => "2019-11-05 00:00:00" "created_at" => "2019-11-05 15:19:35" "updated_at" => "2019-11-08 18:44:00" "level_id" =>1 "certified" =>true "external_urls" => "[{"url": null, "name": ""}]" "certification_number" => "AZD557AZD7" "certification_expired_date" => "2019-07-13" "intern" =>true "certification_body_name" => "name" "external_trainer_name" =>null "external_trainer_company_name" =>null] #changes: [] #dates: [] #dateFormat: null #dispatchesEvents: [] #observables: [] #relations: array:4 [▶] #touches: [] +timestamps: true #hidden: [] #visible: [] #fillable: [] #guarded: array:1 [▶]}


{{ dump($training) }}


{"id":7,"title":"training l after adding the permission","begin_date":"2019-11-05 00:00:00","end_date":"2019-11-05 00:00:00","created_at":"2019-11-05 15:19:35","updated_at":"2019-11-08 18:44:00","level_id":1,"certified":true,"external_urls":[{"url":null,"name":""}],"certification_number":"AZD557AZD7","certification_expired_date":"2019-07-13","intern":true,"certification_body_name":"name","external_trainer_name":null,"external_trainer_company_name":null,"levelName":"level kiwi","trainers":[{"name":"mostafa abdellaoui","last_name":"mostafa","first_name":"abdellaoui","pivot":{"training_id":7,"user_id":503}},{"name":"bruno sas23","last_name":"bruno","first_name":"sas23","pivot":{"training_id":7,"user_id":508}}],"categories":[{"id":2,"competence":"competence name 2","created_at":"2019-10-22 14:54:51","updated_at":"2019-10-22 14:54:51","wheel_id":1,"pivot":{"training_id":7,"category_id":2}},{"id":3,"competence":"competance 3","created_at":"2019-10-23 12:28:51","updated_at":"2019-10-23 12:28:55","wheel_id":1,"pivot":{"training_id":7,"category_id":3}}],"participants":[{"name":"bruno sas23","last_name":"bruno","first_name":"sas23","pivot":{"training_id":7,"user_id":508}}],"level":{"id":1,"name":"level kiwi","competence_level":0,"description":"basic level","created_at":"2019-10-22 12:40:27","updated_at":"2019-10-22 12:40:23"}}
Jaytee's avatar

I'm on Laravel 6.5. Copying the above code works fine for me, the full string is returned properly.

Jaytee's avatar

Is it possible that you can provide me access to your private repository? I want to diagnose the application, and make sure there is no other code both on the server-side and client-side, hijacking the response.

If I can do that, then we may be able to pinpoint it to a PHP bug, or a server issue.

Sinnbeck's avatar

Out of curiosity. What happens if you overwrite the index.php file with this

<?php
echo 'http://test https://';

I am thinking the issue might be with nginx/apache, not laravel

Talinon's avatar

I bet if you ran that thru the PHP CLI it would also work properly, just like Tinker.

$ php -r "echo 'http://test https://';"

Maybe time to try reinstalling your webserver (apache/nginx)

GodziLaravel's avatar

@jaytee

It's not possible to give you the access because I don't have the right to do it , but if you have a specific steps to do please supply me that and I will ask the network administrator to do it .

GodziLaravel's avatar

@sinnbeck @jaytee @talinon @jeffreyway @click @cronix

When I override the index.php :

function test(){
    return "---http://test https://";
}
function test2(){
    return '---http://test https://';
}
function test3(){
    echo '---http://test https://';
}

echo test();
echo test2();
echo test3();
echo '---http://test https://';
exit();

the result is normal with http:

---http://test https://---http://test https://---http://test https://---http://test https://

And with : php -r "echo 'http://test https://';"

http://test https://
Talinon's avatar

Check to see what modules are installed on your web server.

For Apache: apache2ctl -M

For Nginx: nginx -V

GodziLaravel's avatar

@talinon

apache2ctl -M

 apache2ctl -M
AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/irp.******.com.conf:1
AH00112: Warning: DocumentRoot [/data/www/irp.******.com/public] does not exist
AH00526: Syntax error on line 48 of /etc/apache2/sites-enabled/irp.******.com.conf:
SSLCertificateFile: file '/etc/letsencrypt/live/irp.******.com/fullchain.pem' does not exist or is empty
Action '-M' failed.
The Apache error log may have more information.

apache2ctl -V

apache2ctl -V
Server version: Apache/2.4.29 (Ubuntu)
Server built:   2019-09-16T12:58:48
Server's Module Magic Number: 20120211:68
Server loaded:  APR 1.6.3, APR-UTIL 1.6.1
Compiled using: APR 1.6.3, APR-UTIL 1.6.1
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"

Thanks

Talinon's avatar

It might not be the root cause, but configuration errors certainly don't help. You should get them cleared up, or ask your network administrator.

GodziLaravel's avatar

@talinon

Hello , here the configuration :

# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
#
#
# Summary of how the Apache 2 configuration works in Debian:
# The Apache 2 web server configuration in Debian is quite different to
# upstream's suggested way to configure the web server. This is because Debian's
# default Apache2 installation attempts to make adding and removing modules,
# virtual hosts, and extra configuration directives as flexible as possible, in
# order to make automating the changes and administering the server as easy as
# possible.

# It is split into several files forming the configuration hierarchy outlined
# below, all located in the /etc/apache2/ directory:
#
#       /etc/apache2/
#       |-- apache2.conf
#       |       `--  ports.conf
#       |-- mods-enabled
#       |       |-- *.load
#       |       `-- *.conf
#       |-- conf-enabled
#       |       `-- *.conf
#       `-- sites-enabled
#               `-- *.conf
#
#
# * apache2.conf is the main configuration file (this file). It puts the pieces
#   together by including all remaining configuration files when starting up the
#   web server.
#
# * ports.conf is always included from the main configuration file. It is
#   supposed to determine listening ports for incoming connections which can be
#   customized anytime.
#
# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/
#   directories contain particular configuration snippets which manage modules,
#   global configuration fragments, or virtual host configurations,
#   respectively.
#
#   They are activated by symlinking available configuration files from their
#   respective *-available/ counterparts. These should be managed by using our
#   helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See
#   their respective man pages for detailed information.
#
# * The binary is called apache2. Due to the use of environment variables, in
#   the default configuration, apache2 needs to be started/stopped with
#   /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not
#   work with the default configuration.


# Global configuration
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the Mutex documentation (available
# at <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
#ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#Mutex file:${APACHE_LOCK_DIR} default

#
# The directory where shm and other runtime files will be stored.
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5


# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog ${APACHE_LOG_DIR}/error.log

#
# LogLevel: Control the severity of messages logged to the error_log.
# Available values: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the log level for particular modules, e.g.
# "LogLevel info ssl:warn"
#
LogLevel warn

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf


# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

#<Directory /srv/>
#       Options Indexes FollowSymLinks
#       AllowOverride None
#       Require all granted
#</Directory>




# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>


#
# The following directives define some format nicknames for use with
# a CustomLog directive.
#
# These deviate from the Common Log Format definitions in that they use %O
# (the actual bytes sent including headers) instead of %b (the size of the
# requested file), because the latter makes it impossible to detect partial
# requests.
#
# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended.
# Use mod_remoteip instead.
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
mostafa@ip-172-31-37-71:/etc/apache2$

Talinon's avatar

I don't think the error is coming from your main apache2.conf, but the virtual host config:

AH00526: Syntax error on line 48 of /etc/apache2/sites-enabled/irp.******.com.conf:

Once you get the errors fixed, you should then be able to export the module list

DonClemenzo's avatar

Hey, I just found the same issue.

I get an instance of model in tinker, there is different value in some of the columns. Tinker shows null, but actually it's not null in the database

Im using Laravel 5.3 PHP 7.3. And using PostgreSQL as well. Im using vue as well

Previous

Please or to participate in this conversation.