Laravel Custom Setters Example Tutorial
Teams applying “Laravel Custom Setters Example Tutorial” in a production project can use the official example to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.
Before copying the example into a live application, confirm version-specific behaviour with the official Laravel website and test it against the project’s actual database and runtime.
Hi guys, Today i will explained to the laravel custom setter tutorial in your laravel project.The laravel custom setter tutorial is so easy to use.so you can just follow my step by step and learn laravel custom setter tutorial.
So let's start to the example and follow to the my all step.
Solution
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function setPasswordAttribute($password)
{
$this->attributes['password'] = bcrypt($password);
}
Example :
Step 1: Create a User model
First step to create a User.php models and use this code.
App/Models/User.php
<?php
namespace App\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'first_name',
'last_name',
'email',
'password',
];
public function setPasswordAttribute($password)
{
$this->attributes['password'] = bcrypt($password);
}
}
Step 2: Create Route
Now in this step to create a route in web.php file and use this code.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
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::get('users/create', [UserController::class, 'index'])->name('users.create');
Route::post('users/store', [UserController::class, 'store'])->name('user.store');
Step 3: Create a User Controller
Next you can require to the User Controller so create a User Controller in just following command through.
app/Http/Controllers/UserController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
class UserController extends Controller
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
public function index(Request $request)
{
$data = [
'first_name' => $request->first_name,
'last_name' => $request->last_name,
'email' => $request->email,
'password' => $request->password,
];
$user = User::create($data);
dd($user);
}
}
Step 4: Create a Users Blade File
Next you can require to the users.blade.php so create a users.blade.php in your resources/views directory folder.
resources/views/users.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel Custom Setters Tutorial</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1>Laravel Custom Setters Tutorial</h1>
{!! Form::open(array('route' => 'user.store','method'=>'POST')) !!}
<div class="col-md-12">
<div class="row mt-0">
<div class="col-md-6">
<div class="form-group pl-3 pr-3">
<label>First Name</label>
{{ Form::text('first_name', null ,['class'=>'form-control', 'placeholder'=>'First Name'] ) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group pl-3 pr-3">
<label>Last Name</label>
{{ Form::text('last_name', null ,['class'=>'form-control', 'placeholder'=>'Last Name'] ) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group pl-3 pr-3">
<label>Email</label>
{{ Form::email('email', null ,['class'=>'form-control', 'placeholder'=>'Email'] ) }}
</div>
</div>
<div class="col-md-6">
<div class="form-group pl-3 pr-3">
<label>Password</label>
{{ Form::password('password',['class'=>'form-control', 'placeholder'=>'Enter Password'] ) }}
</div>
</div>
<div class="col-md-12 text-center mt-2 mb-3">
<button type="submit" class="btn btn-success">Submit</button>
</div>
</div>
</div>
{!! Form::close() !!}
</div>
</body>
</html>
Ok, now you have to create some dummy records on users table.
So, finally we are done with our code we can get below output.
php artisan serve
Browser url run : http://localhost:8000/users/create
output:
App\Models\User {#1268 ?
#fillable: array:4 [?]
#hidden: array:2 [?]
#casts: array:1 [?]
#connection: "mysql"
#table: "users"
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:9 [?]
#original: array:9 [?
"id" => 30
"first_name" => "divyang"
"last_name" => "vadodariya"
"email" => "[email protected]"
"email_verified_at" => null
"password" => "$2y$10$4ZnAV8RyR0pSaRl6icRY2.VE6bjWJahWpgPR4FHbKqhx0LikTR3NW"
"remember_token" => null
"created_at" => "2021-05-05 12:40:33"
"updated_at" => "2021-05-05 12:40:33"
]
#changes: []
#classCastCache: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#visible: []
#guarded: array:1 [?]
#rememberTokenName: "remember_token"
}
- How to Notifications With database Driver in Laravel 11?
- How to Send Email Via Notification in Laravel 11?
- How to Install and Configure Laravel 11 Debugbar?
- How to Like Dislike System in Laravel 11?
- How to Paginate a Model with Relationship in Laravel 11?
- Laravel 11 Upload Files to Amazon S3 Example
- Laravel 11 Send WhatsApp Messages Example
- Laravel 11 Rest API Authentication Using JWT Tutorial