Skip to main content

Laravel 8 Create Custom Namespace Tutorial

Laravel 8 Create Custom Namespace Tutorial

Hi Dev,

In this post,I will give you how to create custom namespace in laravel 8. we will show example of laravel 8 create custom namespace. laravel 8 namespaces are defined as a class of elements in which each element has a unique name to the associated class. the namespaces may be shared with elements in other classes. let’s understand why we need a namespace in laravel 8.

Here, I will give you full example for laravel 8 create custom namespace as bellow.

Create Custom Namespace in Laravel 8

I will create a custom namespace in Laravel 8, create a separate controller with forward-slash(/) using the following command.


php artisan make:controller Client/UserController --resource --model=User

If you closely look at the above command, you can see that we have used the forward slash to separate our namespace Client. This gives us the ability to create a custom namespace, and it is easier for us to design the project.

The UserController will be created inside the Client directory inside the app >> Http >> Controllers folder.

Also, we have attached the User.php model to the UserController.

If you open the UserController.php file, then it looks like below.


<?php

// UserController.php

namespace App\Http\Controllers\Client;

use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;

class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}

/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}

/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}

/**
* Display the specified resource.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function show(User $user)
{
//
}

/**
* Show the form for editing the specified resource.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function edit(User $user)
{
//
}

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function update(Request $request, User $user)
{
//
}

/**
* Remove the specified resource from storage.
*
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function destroy(User $user)
{
//
}
}

You can see that our new namespace is App\Http\Controllers\Client;

That means if in the future, we have to create a functionality related to the Client module, then we will create another controller Client the Admin namespace.

Other examples like if you are creating an API for a mobile application, then you should make an API namespace and all the controllers will be included under the API namespace

How does routing work under a new namespace?

To write Admin namespace routes, open web.php file and add the following code.

routes/web.php

<?php
use App\Http\Controllers\UserController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::namespace('Client')->group(function() {
Route::resource('users', 'UserController');
});

You can see that we are explicitly defining the routes for the Admin namespace.

Under the Admin namespace, we are defining all the client related routes.

Now, go to the UserController’s index() method and add the following code.


// UserController.php

public function index()
{
return 'Yes!! Client namespace is working successfully';
}

Now we are ready to run our custom validation rules example so run bellow command for quick run:


php artisan serve

Now you can open bellow URL on your browser:


http://localhost:8000/users

It will help you...

Comments

Popular posts from this blog

Laravel Scout Algolia Full Text Search Example

Hi Guys Today,I will tell how you can full text search utilizing scout algolia. i will show the example of laravel scout algolia full text search.you can full text search utilizing scout algolia api.it can this example full expound scout algolia full text search. I will show the rudimental step of scout algolia api full text search.if you can utilize full text search for install scout and Algolia api package.we are utilizing algolia api utilizing full text search example in laravel. Here the following steps example laravel full text search Using scout algolia Step 1: Create Laravel Project In this step create laravel project following command. composer create-project --prefer-dist laravel/blog Step 2: Database Configuration After create laravel project , we require to make database configuration, you have to add following details on your .env file. 1.Database Username 1.Database Password 1.Database Name In .env file also available host and port details, you can configu

Laravel IP Address Using Get Location Example

Hi Dev, Today,I will learn you how to get location useing ip address in laravel. we will show example of laravel ip address using get location. you can easy to get location useing ip address in laravel.In this example, I will useing stevebauman/location packege get location useing ip address in laravel. Many time you will need to get visitor's details for security, spam prevention etc. It's very easy to get visitor ip address and their location in PHP Laravel. Step 1: Install stevebauman/location Now, We will install stevebauman/location package using below command.Require this package with composer. It is recommended to only require the package for development. composer require stevebauman/location Step 2: Add providers and aliases In this step,We will add below providers and aliases in the "config/app.php" file. config/app.php 'providers' => [ .... Stevebauman\Location\LocationServiceProvider::class, ], 'aliases' => [ .... 'Loca

Laravel 6 validation required if another field is empty

Hii guys, In this artical, i will give you example of laravel 6 in validation required if another field is empty. We know laravel provide several in-built laravel 6 validation required_without . If you need to add validation rules like required if other field is empty in laravel then you can do it using required_without. I am going to explain you, If you can not enter test (field) value at that time test1 (field) is required. So at that time you can add validation required_without. So, you can use this way: "test1" =>"required_without:test" Example: public function store(Request $request) { $request->validate([ "test" =>"required", "test1" =>"required_without:test" ]); dd("Done!"); } If return validation error otherwise show Done!. It will help you...