Thursday, 25 November 2021

How do I disable error reporting in Laravel

To disable error reporting in larval production we simply need to set different environment variables.


In your .env file

APP_DEBUG=false

APP_ENV=production


After updating or adding app_debug to false. We need to clear the cache using the artisan command.

php artisan config:clear





Tuesday, 23 November 2021

Laravel Class 'App\Http\Controllers\Config' not found

 


Issue:

Symfony\Component\Debug\Exception\FatalThrowableError Class 'App\Http\Controllers\Config' not found

Possible solution:

When we try to use config() helper function or facade Config::get() in our controller and we forgot to include the namespace of the function.


We only need to include the requried namespace.As like below screenshot.






Monday, 8 November 2021

Laravel Class 'App\Http\Controllers\Input' not found

 In Laravel, the above error occurs because it cannot find the required class in the controller.

 

Sometimes, we use validation, and if validation fails, we need to show all old inputs.

inside form fields when we used to do the following.

For example

// Validation errors.

if ($validator->fails()) {

  return redirect()->back()->withInput(Input::all())->withErrors($validator)->withInput();

}

It will throw the error. 


if we do not include the required namespace.

Wednesday, 20 October 2021

Set Base URL for Assets in Laravel Applications

Setting the Base URL for Assets in your Laravel Applications is very important to make sure all assets like stylesheets, images, and all javascript are properly loading and running without any issues.

Properly set or configured base URLs make sure that our application is accessible in different
types of environments like staging, and production.

1. asset() Helper Function

asset() helper function is very useful when it comes to loading assets of the application.

by default, this helps use the APP_URL value that is defined in the .env file.


2. APP_URL in the .env File

variable app_url in the configuration file decides the base URL of your application.

 APP_URL=http://shoplocal.test

For production update it to the live URL

 APP_URL=http://myabcshop.com


3. Steps to Set Base URL for Assets in Laravel Applications:

1. Using Content Delivery Network (CDN) for Hosting Assets

a) If you are planning to use CDN URLs for your Laravel application then. Open the environment configuration file .env in the root of your Laravel application. It looks something like the below screenshot.


b) Also add the CDN asset URL in AppServiceProvider to register this custom asset URL:

use Illuminate\Support\Facades\URL;
public function boot()
{
   if (env('ASSET_URL')) 
  {
     URL::forceRootUrl(env('ASSET_URL'));
   }
}

Now after updating everything, it will generate CDN URLs for the application

Additionally, if we add or update the public value in asset_url like 

Add ASSET_URL=public 

it will set the asset folder path to the public folder


c) Clear the configuration cache 

To clear the configuration cache to get the updated setting from the configuration we need to run the
command

php artisan config:cache 

This will clear the cache of the configuration.

Friday, 20 August 2021

How to Debug SQL Queries in Laravel

Debugging SQL queries in complex Laravel projects can be challenging sometimes. We can debug database queries in Laravel by following different methods and techniques.

1. Dump and Die dd() function

dd() function will stop execution and display information. It is used to display the SQL query results.


For example:$p = DB::table('products_data')->get();
dd($p);

or

Product::all()->dd();


The above queries will dump and die the SQL query results.

2. dump() function

dump function displays debug information and continues execution.

For example:

Category::all()->dump();

3. toSql() method 

We can use toSql() method in any eloquent query in Laravel with the help of this method
we can get SQL raw query very easily without executing it.


For Example:
$q = DB::table('orders')->where('status', 'active');
$sql = $q->toSql();
dd($q);


This will result in an SQL query in a string form.

4. DB::raw() for Complex Queries

if you want to use direct SQL queries in Laravel then you can use DB::raw.

For example: 
$q = DB::raw('SELECT * FROM users WHERE status = ?', ['active']);
dd($q);

By using DB::raw query you can directly pinpoint the exact cause of the error immediately.


Conclusion
These SQL debugging techniques help you save a lot of time in fixing the SQL query issues and
pinpointing the exact issue.Also, these will make sure all queries are executed and generated properly without issue.

Laravel csrf token mismatch for ajax post request

Error "CSRF Token Mismatch" commonly occurs if tokens do not match in both sessions and sent , and received requests.CSRF token he...