Danish Thebo

1666208202

Laravel 9 Livewire Toastr Notification Alert

In this laravel 9 livewire toastr notification alert tutorial example we have mentioned steps to set up toastr notification alert using laravel and livewire.
The toastr arlert is very essential can be effectively sued with Laravel 9 and 8 once set up.

#1 Let’s Create a new project in Laravel 9

Use this command in your Linux or whatever code processor you are using to create a new laravel 9 project.
#laravel9  #livewire #notifications 

Laravel 9 Livewire Toastr Notification Alert
Hoang Tran

Hoang Tran

1657252920

Cách Để Laravel 9 Tải Lên Hình ảnh Và Lưu Vào Cơ Sở Dữ Liệu

Hôm nay chúng tôi sẽ hướng dẫn Cách tải hình ảnh lên trong laravel 9. Trong ví dụ này, chúng tôi sẽ giải thích từng bước để tải hình ảnh lên laravel 9 và lưu vào cơ sở dữ liệu. Ở đây bạn sẽ tìm hiểu ví dụ tải lên hình ảnh laravel, mã tải lên hình ảnh laravel, tải lên hình ảnh laravel 9, ví dụ tải lên hình ảnh laravel 9. Vì vậy, chúng ta hãy làm theo bước để tải hình ảnh trong laravel.

Bước 1: Tạo bộ điều khiển

Trong bước này, chúng ta sẽ tạo một ImageUploadController mới. Trong tệp này, chúng tôi sẽ thêm hai phương thức index () và store () để hiển thị và lưu trữ logic hình ảnh.

Hãy tạo ImageUploadController bằng lệnh sau:

php artisan make:controller ImageUploadController

app / Http / Controllers / ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

Bước 2: Thêm các tuyến đường

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

Bước 3: Tạo tệp Blade

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

Bây giờ, hãy truy cập trình duyệt web của bạn, nhập URL đã cho và xem đầu ra ứng dụng:

http://localhost:8000/upload-image

Tôi hy vọng bạn hiểu về tải lên hình ảnh của laravel 9 và nó có thể giúp bạn…

Nguồn:  https://web-tuts.com

#php #laravel #laravel9 

Cách Để Laravel 9 Tải Lên Hình ảnh Và Lưu Vào Cơ Sở Dữ Liệu
Duyen Hoang

Duyen Hoang

1657243800

Ví dụ về Đăng nhập mạng xã hội Laravel 9 với Google Ví dụ

Xin chào các bạn, Hôm nay chúng tôi sẽ hiển thị Đăng nhập xã hội Laravel 9 bằng Google Ví dụ. Trong ví dụ này, tôi sẽ giải thích cho bạn cách đăng nhập bằng google trong Laravel. Ở đây bạn sẽ học cách đăng nhập laravel 9 với google bằng gói socialite. Đôi khi chúng ta cần lấy dữ liệu người dùng thực sau đó sử dụng đăng nhập bằng các phương tiện truyền thông xã hội như google, facebook, twitter, linkedin, v.v.

Ở đây, chúng tôi sẽ cung cấp cho bạn ví dụ đơn giản về Ví dụ đăng nhập mạng xã hội Laravel 9 bằng Tài khoản Google, Đăng nhập Laravel 9 bằng Gmail, Đăng nhập bằng tài khoản google trong laravel 9.

Ví dụ về Đăng nhập Socialite Laravel 9 bằng Tài khoản Google

Bước 1: Cài đặt Laravel 9

composer create-project laravel/laravel example-app

Bước 2: Cài đặt JetStream

Bây giờ, chúng ta yêu cầu sử dụng lệnh composer để cài đặt jetstream, vì vậy hãy chạy lệnh sau và cài đặt thư viện sau.

composer require laravel/jetstream

Bây giờ, hãy nút gói js:

npm install

hãy chạy gói:

npm run dev

Bây giờ, chúng tôi yêu cầu chạy lệnh di chuyển để tạo bảng cơ sở dữ liệu.

php artisan migrate

Bước 3: Cài đặt Socialite

Bây giờ chúng ta sẽ cài đặt Gói Socialite cung cấp api để kết nối với tài khoản google. Vì vậy, trước tiên, hãy mở thiết bị đầu cuối của bạn và chạy lệnh sau.

composer require laravel/socialite

Bước 4: Tạo ứng dụng Google

Ở đây, chúng tôi yêu cầu mã khách hàng google và bí mật theo cách đó chúng tôi có thể lấy thông tin của người dùng khác. vì vậy nếu bạn không có tài khoản ứng dụng google thì bạn có thể tạo từ đây: Bảng điều khiển dành cho nhà phát triển của Google . bạn có thể tìm thấy màn hình sau:

laravel đăng nhập google

Bây giờ bạn phải nhấp vào  Thông tin đăng nhập  và chọn tùy chọn đầu tiên  oAuth  và nhấp vào nút  Tạo ID khách hàng mới . Sau khi bạn có thể xem trang trình bày dưới đây:

Sau khi tạo tài khoản, bạn có thể sao chép id khách hàng và bí mật của mình.

Tại đây bạn sẽ đặt id ứng dụng, bí mật và url gọi lại trong tệp cấu hình. Vì vậy, hãy mở config / services.php  và đặt id và bảo mật theo cách này:

config / services.php

return [
    ....
    'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => 'http://localhost:8000/auth/google/callback',
    ],
]

Sau đó, bạn phải thêm id khách hàng google và bí mật khách hàng trong tệp .env:

.env

GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

Bước 5: Thêm cột cơ sở dữ liệu

Bây giờ, chúng tôi phải tạo di chuyển cho thêm google_id trong bảng người dùng của bạn. Vì vậy, hãy chạy lệnh sau.

php artisan make:migration add_google_id_column

Di cư

<?php
  
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
  
return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function ($table) {
            $table->string('google_id')->nullable();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
          
    }
};

Cập nhật chế độ như thế này:

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;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
  
class User extends Authenticatable
{
    use HasApiTokens;
    use HasFactory;
    use HasProfilePhoto;
    use Notifiable;
    use TwoFactorAuthenticatable;
  
    /**
     * The attributes that are mass assignable.
     *
     * @var string[]
     */
    protected $fillable = [
        'name',
        'email',
        'password',
        'google_id'
    ];
  
    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array
     */
    protected $hidden = [
        'password',
        'remember_token',
        'two_factor_recovery_codes',
        'two_factor_secret',
    ];
  
    /**
     * The attributes that should be cast.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
  
    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = [
        'profile_photo_url',
    ];
}

Bước 6: Tạo các tuyến đường

Bây giờ thêm cột google_id đầu tiên chúng ta phải thêm tuyến đường mới để đăng nhập google. vì vậy chúng ta hãy thêm tuyến đường sau vào tệp tin route.php.

route / web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\GoogleController;
  
Route::get('/', function () {
    return view('welcome');
});
  
Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    return view('dashboard');
})->name('dashboard');
  
Route::controller(GoogleController::class)->group(function(){
    Route::get('auth/google', 'redirectToGoogle')->name('auth.google');
    Route::get('auth/google/callback', 'handleGoogleCallback');
});

Bước 7: Tạo bộ điều khiển

Sau khi thêm tuyến, chúng tôi yêu cầu thêm phương thức google auth mà phương thức đó sẽ xử lý url gọi lại của google và v.v., trước tiên hãy đặt mã dưới đây vào tệp GoogleController.php của bạn.

app / Http / Controllers / GoogleController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
use Exception;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
  
class GoogleController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectToGoogle()
    {
        return Socialite::driver('google')->redirect();
    }
          
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function handleGoogleCallback()
    {
        try {
        
            $user = Socialite::driver('google')->user();
         
            $finduser = User::where('google_id', $user->id)->first();
         
            if($finduser){
         
                Auth::login($finduser);
        
                return redirect()->intended('dashboard');
         
            }else{
                $newUser = User::updateOrCreate(['email' => $user->email],[
                        'name' => $user->name,
                        'google_id'=> $user->id,
                        'password' => encrypt('123456dummy')
                    ]);
         
                Auth::login($newUser);
        
                return redirect()->intended('dashboard');
            }
        
        } catch (Exception $e) {
            dd($e->getMessage());
        }
    }
}

Bước 8: Cập nhật tệp Blade

Ở đây cuối cùng, chúng tôi yêu cầu thêm chế độ xem sau, vì vậy trước tiên hãy tạo tệp mới tệp login.blade.php và đặt mã sau:

resource / views / auth / login.blade.php

<x-guest-layout>
    <x-jet-authentication-card>
        <x-slot name="logo">
            <x-jet-authentication-card-logo />
        </x-slot>
  
        <x-jet-validation-errors class="mb-4" />
  
        @if (session('status'))
            <div class="mb-4 font-medium text-sm text-green-600">
                {{ session('status') }}
            </div>
        @endif
  
        <form method="POST" action="{{ route('login') }}">
            @csrf
  
            <div>
                <x-jet-label for="email" value="{{ __('Email') }}" />
                <x-jet-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
            </div>
  
            <div class="mt-4">
                <x-jet-label for="password" value="{{ __('Password') }}" />
                <x-jet-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" />
            </div>
  
            <div class="block mt-4">
                <label for="remember_me" class="flex items-center">
                    <x-jet-checkbox id="remember_me" name="remember" />
                    <span class="ml-2 text-sm text-gray-600">{{ __('Remember me') }}</span>
                </label>
            </div>
  
            <div class="flex items-center justify-end mt-4">
                @if (Route::has('password.request'))
                    <a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('password.request') }}">
                        {{ __('Forgot your password?') }}
                    </a>
                @endif
  
                <x-jet-button class="ml-4">
                    {{ __('Log in') }}
                </x-jet-button>
            </div>
            <div class="flex items-center justify-end mt-4 align-middle ">
                <a href="{{ route('auth.google') }}">
                    <img src="https://developers.google.com/identity/images/btn_google_signin_dark_normal_web.png" style="margin-left: 3em;">
                </a>
            </div>
        </form>
    </x-jet-authentication-card>
</x-guest-layout>

Bây giờ hãy chạy ứng dụng laravel của bạn.

php artisan serve

Bây giờ, hãy truy cập trình duyệt web của bạn, nhập URL đã cho và xem đầu ra ứng dụng:

http://localhost:8000/login

Đầu ra

Tôi hy vọng bạn hiểu về đăng nhập bằng tài khoản google và nó có thể giúp bạn…

Nguồn:  https://web-tuts.com

#php #laravel #laravel9 

Ví dụ về Đăng nhập mạng xã hội Laravel 9 với Google Ví dụ
Hoang Tran

Hoang Tran

1657239900

Cách sử dụng Trình tạo PDF Laravel bằng DomPDF

Xin chào các bạn, Hôm nay sẽ hướng dẫn cách sử dụng laravel pdf Creator bằng dompdf. Trong ví dụ này, bạn sẽ học laravel tạo pdf từ chế độ xem. Tôi sẽ giải thích từng bước laravel tạo pdf từ html. Đôi khi chúng ta cần laravel tạo pdf từ mẫu.

Tại đây, bạn sẽ thấy gói tạo pdf laravel, tạo pdf laravel 9, ví dụ laravel dompdf, download pdf bằng dompdf trong laravel, hướng dẫn sử dụng laravel dompdf. Vì vậy, hãy làm theo bước của tôi để đóng tệp pdf động trong lravel 9 bằng cách sử dụng dompdf.

Ví dụ về Laravel 9 DomPDF

Bước 1: Cài đặt Laravel 9

Bước này không cần thiết. nếu bạn chưa tạo ứng dụng laravel, thì bạn có thể tiếp tục và thực hiện lệnh sau.

composer create-project laravel/laravel example-app

Bước 2: Cài đặt gói DomPDF

Bây giờ, chúng ta sẽ cài đặt gói DomPDF bằng lệnh bên dưới của trình soạn nhạc, hãy chạy lệnh sau:

composer require barryvdh/laravel-dompdf

Bước 3: Tạo bộ điều khiển

Trong bước này, chúng tôi sẽ tạo PDFController với createPDF (), nơi chúng tôi viết mã tạo pdf. vì vậy hãy tạo bộ điều khiển bằng lệnh dưới đây.

php artisan make:controller PDFController

trong PDFController, chúng tôi cũng lấy dữ liệu bảng của người dùng và hiển thị chúng thành tệp pdf. vì vậy bạn có thể thêm một số dữ liệu giả trên bảng người dùng bằng cách sử dụng lệnh tinker sau:

php artisan tinker

User::factory()->count(10)->create()

Bây giờ, hãy cập nhật mã trên tệp bộ điều khiển.

app / Http / Controllers / PDFController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Models\User;
use PDF;
  
class PDFController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function generatePDF()
    {
        $users = User::get();
  
        $data = [
            'title' => 'Welcome to Web-Tuts.com',
            'date' => date('m/d/Y'),
            'users' => $users
        ]; 
            
        $pdf = PDF::loadView('myPDF', $data);
     
        return $pdf->download('Web-Tuts.pdf');
        
        
    }
}

Bước 4: Thêm tuyến đường

Hơn nữa, hãy mở tệp route / web.php và cập nhật mã trên đó.

route / web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\PDFController;
 
  
Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Route::View('/','welcome');

Bước 5: Tạo tệp xem

Trong bước cuối cùng, hãy tạo myPDF.blade.php (resources / views / myPDF.blade.php) để bố trí tệp pdf và đặt mã sau:

resource / views / myPDF.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Generate PDF Example - ItSolutionStuff.com</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>{{ $date }}</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua.</p>
  
    <table class="table table-bordered">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        @foreach($users as $user)
        <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
            <td>{{ $user->email }}</td>
        </tr>
        @endforeach
    </table>
  
</body>
</html>

resource / views / welcome.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel 9</title>


    </head>
    <body >


<a href="http://localhost:8000/generate-pdf"><button>Download</button></a>

    </body>
</html>

Chạy ứng dụng Laravel:

Tất cả các bước bắt buộc đã được thực hiện, bây giờ bạn phải nhập lệnh dưới đây và nhấn enter để chạy ứng dụng Laravel:

php artisan serve

Bây giờ, hãy truy cập trình duyệt web của bạn, nhập URL đã cho và xem đầu ra ứng dụng:

http://localhost:8000

Tôi hy vọng bạn hiểu về ví dụ dompdf của laravel 9 và nó có thể giúp bạn…

Nguồn:  https://web-tuts.com

#php #laravel #laravel9 #pdf 

Cách sử dụng Trình tạo PDF Laravel bằng DomPDF
Duyen Hoang

Duyen Hoang

1657220520

Tìm Hiểu Cách Vận Hành CRUD Laravel 9 Cho Người Mới Bắt Đầu

Hôm nay chúng tôi sẽ chỉ cho bạn các thao tác đơn giản như đọc, chèn, xóa và cập nhật với phương pháp đơn giản để người mới bắt đầu có thể hiểu bài tiểu luận. Dưới đây tôi viết mã và giải thích anh ta cách tốt nhất. nếu người mới bắt đầu của bạn không căng thẳng. chúng tôi xây dựng mọi thứ.

Hoạt động CRUD của Laravel 9

Bước 1: Cài đặt Laravel 9

Bước này không cần thiết. nếu bạn chưa tạo ứng dụng laravel, thì bạn có thể tiếp tục và thực hiện lệnh sau.

composer create-project laravel/laravel example-app

Bước 2: Cấu hình cơ sở dữ liệu

Trong bước, chúng tôi sẽ cấu hình cơ sở dữ liệu, vì vậy chúng tôi phải Chèn tên cơ sở dữ liệu, tên người dùng mysql và mật khẩu. Vì vậy, hãy mở tệp .env và làm theo lệnh:

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)

Bước 3: Tạo di chuyển

Ở đây, chúng tôi sẽ tạo bảng "sản phẩm" bằng cách sử dụng chuyển đổi. vì vậy hãy làm theo lệnh để tạo quá trình di chuyển.

php artisan make:migration create_products_table

Nhấn enter và sau đó, bạn sẽ tìm thấy một tệp “cơ sở dữ liệu / di chuyển / sản phẩm” và bạn phải đặt mã dưới đây vào tệp di chuyển của mình để tạo bảng sản phẩm.

<?php
  
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
  
return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('detail');
            $table->timestamps();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('products');
    }
};

Bây giờ bạn phải chạy quá trình di chuyển này bằng lệnh sau:

php artisan migrate

Bước 4: Thêm tệp Blade

Trong bước. Chúng ta sẽ tạo các tệp phiến. vì vậy, hãy tạo thư mục "products" và tạo các tệp phiến đề cập bên dưới.

1) layout.blade.php

2) index.blade.php

3) create.blade.php

4) edit.blade.php

5) show.blade.php

Vì vậy, chúng ta chỉ cần tạo tệp sau đây và đặt mã dưới đây.

resource / views / products / layout.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 CRUD Application - ItSolutionStuff.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    
<div class="container">
    @yield('content')
</div>
    
</body>
</html>

resource / views / products / index.blade.php

@extends('products.layout')
 
@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Laravel 9 CRUD Example from scratch - ItSolutionStuff.com</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-success" href="{{ route('products.create') }}"> Create New Product</a>
            </div>
        </div>
    </div>
   
    @if ($message = Session::get('success'))
        <div class="alert alert-success">
            <p>{{ $message }}</p>
        </div>
    @endif
   
    <table class="table table-bordered">
        <tr>
            <th>No</th>
            <th>Name</th>
            <th>Details</th>
            <th width="280px">Action</th>
        </tr>
        @foreach ($products as $product)
        <tr>
            <td>{{ ++$i }}</td>
            <td>{{ $product->name }}</td>
            <td>{{ $product->detail }}</td>
            <td>
                <form action="{{ route('products.destroy',$product->id) }}" method="POST">
   
                    <a class="btn btn-info" href="{{ route('products.show',$product->id) }}">Show</a>
    
                    <a class="btn btn-primary" href="{{ route('products.edit',$product->id) }}">Edit</a>
   
                    @csrf
                    @method('DELETE')
      
                    <button type="submit" class="btn btn-danger">Delete</button>
                </form>
            </td>
        </tr>
        @endforeach
    </table>
  
    {!! $products->links() !!}
      
@endsection

resource / views / products / create.blade.php

@extends('products.layout')
  
@section('content')
<div class="row">
    <div class="col-lg-12 margin-tb">
        <div class="pull-left">
            <h2>Add New Product</h2>
        </div>
        <div class="pull-right">
            <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>
        </div>
    </div>
</div>
   
@if ($errors->any())
    <div class="alert alert-danger">
        <strong>Whoops!</strong> There were some problems with your input.<br><br>
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
   
<form action="{{ route('products.store') }}" method="POST">
    @csrf
  
     <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Name:</strong>
                <input type="text" name="name" class="form-control" placeholder="Name">
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Detail:</strong>
                <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail"></textarea>
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12 text-center">
                <button type="submit" class="btn btn-primary">Submit</button>
        </div>
    </div>
   
</form>
@endsection

resource / views / products / edit.blade.php

@extends('products.layout')
   
@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2>Edit Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>
            </div>
        </div>
    </div>
   
    @if ($errors->any())
        <div class="alert alert-danger">
            <strong>Whoops!</strong> There were some problems with your input.<br><br>
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif
  
    <form action="{{ route('products.update',$product->id) }}" method="POST">
        @csrf
        @method('PUT')
   
         <div class="row">
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Name:</strong>
                    <input type="text" name="name" value="{{ $product->name }}" class="form-control" placeholder="Name">
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12">
                <div class="form-group">
                    <strong>Detail:</strong>
                    <textarea class="form-control" style="height:150px" name="detail" placeholder="Detail">{{ $product->detail }}</textarea>
                </div>
            </div>
            <div class="col-xs-12 col-sm-12 col-md-12 text-center">
              <button type="submit" class="btn btn-primary">Submit</button>
            </div>
        </div>
   
    </form>
@endsection

resource / views / products / show.blade.php

@extends('products.layout')
  
@section('content')
    <div class="row">
        <div class="col-lg-12 margin-tb">
            <div class="pull-left">
                <h2> Show Product</h2>
            </div>
            <div class="pull-right">
                <a class="btn btn-primary" href="{{ route('products.index') }}"> Back</a>
            </div>
        </div>
    </div>
   
    <div class="row">
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Name:</strong>
                {{ $product->name }}
            </div>
        </div>
        <div class="col-xs-12 col-sm-12 col-md-12">
            <div class="form-group">
                <strong>Details:</strong>
                {{ $product->detail }}
            </div>
        </div>
    </div>
@endsection

Bước 5: Tạo bộ điều khiển và mô hình

Trong bước này, bây giờ chúng ta nên tạo bộ điều khiển mới là ProductController. Vì vậy, chạy lệnh dưới đây và tạo bộ điều khiển mới. Bây giờ bạn phải chạy bằng lệnh sau:

php artisan make:controller ProductController

Sau lệnh dưới đây, bạn sẽ tìm thấy một tệp mới trong đường dẫn này “app / Http / Controllers / ProductController.php”.

Trong bộ điều khiển này sẽ tạo ra 7 chức năng bằng lệnh dưới đây:

<?php
  
namespace App\Http\Controllers;
  
use App\Models\Product;
use Illuminate\Http\Request;
  
class ProductController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $products = Product::latest()->paginate(5);
      
        return view('products.index',compact('products'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }
  
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('products.create');
    }
  
    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
      
        Product::create($request->all());
       
        return redirect()->route('products.index')
                        ->with('success','Product created successfully.');
    }
  
    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function show(Product $product)
    {
        return view('products.show',compact('product'));
    }
  
    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function edit(Product $product)
    {
        return view('products.edit',compact('product'));
    }
  
    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Product $product)
    {
        $request->validate([
            'name' => 'required',
            'detail' => 'required',
        ]);
      
        $product->update($request->all());
      
        return redirect()->route('products.index')
                        ->with('success','Product updated successfully');
    }
    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Product  $product
     * @return \Illuminate\Http\Response
     */
    public function destroy(Product $product)
    {
        $product->delete();
       
        return redirect()->route('products.index')
                        ->with('success','Product deleted successfully');
    }
}

Ok, vì vậy sau khi chạy lệnh dưới đây, bạn sẽ tìm thấy “app / Models / Product.php” và đưa nội dung dưới đây vào tệp Product.php:

php artisan make:Model Product

sau lệnh, bạn sẽ tìm thấy mô hình mới trong đường dẫn sau “app / Models / Product.php”.

app / Models / Product.php

<?php
  
namespace App\Models;
  
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
  
class Product extends Model
{
    use HasFactory;
  
    protected $fillable = [
        'name', 'detail'
    ];
}

Bước 6: Thêm tuyến đường

Ở đây, chúng ta cần thêm lộ trình cho sản phẩm. vì vậy, hãy mở tệp “route / web.php” của bạn và thêm đường dẫn sau.

route / web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\ProductController;
  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group that
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::resource('products', ProductController::class);

Chạy ứng dụng Laravel:

Tất cả các bước cần thiết đã được thực hiện, bây giờ bạn phải nhập lệnh dưới đây và nhấn enter để chạy ứng dụng Laravel:

php artisan serve

Chúng tôi đã hoàn thành ở đây. Hy vọng bạn sẽ nhận được mọi thứ nếu bạn vẫn có bất kỳ lệnh đọc lại truy vấn nào và bạn cũng có thể tải xuống mã nguồn.

Nguồn:  https://web-tuts.com

#php #laravel #laravel9 #crud 

Tìm Hiểu Cách Vận Hành CRUD Laravel 9 Cho Người Mới Bắt Đầu
Thai  Son

Thai Son

1657198920

Thư Laravel 9 - Ví dụ đơn giản về Gửi Email trong Laravel 9

Xin chào các bạn, Hôm nay chúng tôi sẽ hiển thị ví dụ gửi email của Laravel 9. Trong ví dụ này, chúng ta học cách gửi email trong ứng dụng laravel 9. chúng tôi sẽ cung cấp cho bạn ví dụ về ví dụ gửi mail của laravel 9.

Ở đây, chúng tôi sẽ hiển thị ví dụ laravel 9 send mail smtp, cách Gửi Email trong Laravel 9, gửi mail trong Laravel 9 bằng SMTP, laravel 9 gửi mail từ localhost. Trong ví dụ này, chúng tôi sẽ cung cấp ví dụ đơn giản về gửi email trong laravel 9.

Ví dụ về Gửi Email trong Laravel 9

Bước 1: Tạo cấu hình

Trong bước đầu tiên, chúng tôi sẽ thêm cấu hình gửi thư với trình điều khiển thư, máy chủ thư, cổng thư, tên người dùng thư, mật khẩu thư vì vậy laravel 9. Sẽ sử dụng các cấu hình người gửi đó để gửi email. Vì vậy, bạn có thể chỉ cần thêm như dưới đây.

.env

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=mygoogle@gmail.com
MAIL_PASSWORD=rrnnucvnqlbsl
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=mygoogle@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

Bước 2: Tạo lớp thư

Trong bước này, chúng tôi sẽ tạo lớp thư để gửi email. Ở đây chúng ta sẽ tạo lớp Demomail để gửi mail.

php artisan make:mail DemoMail

app / Mail / DemoMail.php

<?php
  
namespace App\Mail;
  
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
  
class DemoMail extends Mailable
{
    use Queueable, SerializesModels;
  
    public $mailData;
  
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($mailData)
    {
        $this->mailData = $mailData;
    }
  
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Mail from Web-tuts.com')
                    ->view('emails.demoMail');
    }
}

Bước 3: Tạo bộ điều khiển

Bây giờ chúng ta sẽ tạo MailController với phương thức index (), nơi chúng ta viết mã để gửi thư đến địa chỉ email đã cho. vì vậy trước tiên hãy tạo bộ điều khiển bằng cách làm theo lệnh và cập nhật mã trên đó.

php artisan make:controller MailController

app / Http / Controllers / MailController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Mail;
use App\Mail\DemoMail;
  
class MailController extends Controller
{
    /**
     * Write code on Method
     *
     * @return response()
     */
    public function index()
    {
        $mailData = [
            'title' => 'Mail from Web-tuts.com',
            'body' => 'This is for testing email using smtp.'
        ];
         
        Mail::to('your_email@gmail.com')->send(new DemoMail($mailData));
           
        dd("Email is sent successfully.");
    }
}

Bước 4: Tạo các tuyến đường

route / web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\MailController;
  
  
Route::get('send-mail', [MailController::class, 'index']);

Bước 5: Tạo Blade

Trong bước này, chúng ta sẽ tạo tệp dạng xem phiến và viết email mà chúng ta muốn gửi. bây giờ chúng tôi chỉ viết một số văn bản giả. tạo các tệp dưới đây trên thư mục "email".

tài nguyên / lượt xem / email / demoMail.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Web-tuts.com</title>
</head>
<body>
    <h1>{{ $mailData['title'] }}</h1>
    <p>{{ $mailData['body'] }}</p>
  
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
     
    <p>Thank you</p>
</body>
</html>

Tất cả các bước bắt buộc đã được thực hiện, bây giờ bạn phải nhập lệnh sau đây và nhấn enter để chạy ứng dụng Laravel:

php artisan serve

Bây giờ, hãy truy cập trình duyệt web của bạn, nhập URL đã cho và xem đầu ra ứng dụng:

http://localhost:8000/send-mail

Tôi hy vọng bạn hiểu về laravel 9, hãy gửi email và nó có thể giúp bạn…

Nguồn:  https://web-tuts.com

#php #laravel #laravel9 

Thư Laravel 9 - Ví dụ đơn giản về Gửi Email trong Laravel 9

Как в Laravel 9 загрузить изображение и сохранить в базу данных

Сегодня мы покажем, как загрузить изображение в laravel 9. В этом примере мы шаг за шагом объясним, как загрузить изображение в laravel 9 и сохранить его в базу данных. Здесь вы узнаете пример загрузки изображения laravel, код загрузки изображения laravel, загрузку изображения laravel 9, пример загрузки изображения laravel 9. Итак, давайте выполним шаг, чтобы загрузить изображение в laravel.

Шаг 1: Создайте контроллер

На этом шаге мы создадим новый ImageUploadController. В этом файле мы добавим два метода index() и store() для рендеринга представления и сохранения логики изображения.

Давайте создадим ImageUploadController с помощью следующей команды:

php artisan make:controller ImageUploadController

приложение/Http/Контроллеры/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

Шаг 2: Добавьте маршруты

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

Шаг 3: Создайте файл блейда

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

Теперь перейдите в свой веб-браузер, введите указанный URL-адрес и просмотрите вывод приложения:

http://localhost:8000/upload-image

Надеюсь, вы понимаете загрузку изображений в laravel 9, и это может вам помочь…

Источник:  https://web-tuts.com

#php #laravel #laravel9 

Как в Laravel 9 загрузить изображение и сохранить в базу данных
Wayne  Richards

Wayne Richards

1657191240

Cómo Laravel 9 Cargar Imagen Y Guardar En La Base De Datos

Hoy mostraremos cómo cargar imágenes en laravel 9. En este ejemplo, explicaremos paso a paso cómo cargar imágenes en laravel 9 y guardarlas en la base de datos. Aquí aprenderá el ejemplo de carga de imágenes de laravel, el código de carga de imágenes de laravel, laravel 9 de carga de imágenes, el ejemplo de carga de imágenes de laravel 9. Así que sigamos el siguiente paso para cargar la imagen en laravel.

Paso 1: Crear controlador

En este paso, crearemos un nuevo ImageUploadController. En este archivo, agregaremos dos métodos index() y store() para renderizar la vista y almacenar la lógica de la imagen.

Vamos a crear ImageUploadController con el siguiente comando:

php artisan make:controller ImageUploadController

app/Http/Controllers/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

Paso 2: agregar rutas

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

Paso 3: Crear archivo Blade

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

Ahora, vaya a su navegador web, escriba la URL dada y vea el resultado de la aplicación:

http://localhost:8000/upload-image

Espero que entiendas la carga de imágenes de laravel 9 y te pueda ayudar...

Fuente:  https://web-tuts.com

#php #laravel #laravel9 

Cómo Laravel 9 Cargar Imagen Y Guardar En La Base De Datos

Example of Laravel 9 Socialite Login with Google Example

Hello friends, Today we will show Laravel 9 Socialite Login with Google Example. In this example i will explain to you how to login with google in Laravel. Here you will learn laravel 9 login with google using socialite package. Sometimes we need to get real user data then we use login with social media like google, facebook, twitter, linkedin etc.

Source: https://web-tuts.com

#php #laravel #laravel9 

Example of Laravel 9 Socialite Login with Google Example

如何 Laravel 9 上傳圖像並保存到數據庫

今天我們將展示如何在 laravel 9 中上傳圖片。在這個例子中,我們將逐步解釋 laravel 9 上傳圖片並保存到數據庫。這裡將學習laravel圖片上傳示例,laravel圖片上傳代碼,laravel 9圖片上傳,laravel 9圖片上傳示例。因此,讓我們按照以下步驟在 laravel 中上傳圖片。

第 1 步:創建控制器

在這一步中,我們將創建一個新的 ImageUploadController。在這個文件中,我們將為渲染視圖和存儲圖像邏輯添加兩個方法 index() 和 store()。

讓我們通過以下命令創建 ImageUploadController:

php artisan make:controller ImageUploadController

應用程序/Http/Controllers/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

第 2 步:添加路線

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

第 3 步:創建刀片文件

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

現在,轉到您的網絡瀏覽器,輸入給定的 URL 並查看應用程序輸出:

http://localhost:8000/upload-image

我希望你了解 laravel 9 圖片上傳,它可以幫助你……

來源:  https ://web-tuts.com

#php #laravel #laravel9 

如何 Laravel 9 上傳圖像並保存到數據庫
Isai  Upton

Isai Upton

1657184580

Laravel 9 Mail - Simple Example Of Send Email in Laravel 9

Hello friends, Today we will show Laravel 9 send email example. In this example we learn how to send email in laravel 9 application. we will provide to you example of laravel 9 send mail example.

Source: https://web-tuts.com

#php #laravel #laravel9 

Laravel 9 Mail - Simple Example Of Send Email in Laravel 9

Como Laravel 9 Carregar Imagem e Salvar no Banco de Dados

Hoje vamos mostrar Como fazer upload de imagem em laravel 9. Neste exemplo vamos explicar passo a passo como fazer upload de imagem em laravel 9 e salvar no banco de dados. Aqui você aprenderá exemplo de upload de imagem laravel, código de upload de imagem laravel, upload de imagem laravel 9, exemplo de upload de imagem laravel 9. Então vamos seguir o passo para fazer o upload da imagem em laravel.

Etapa 1: criar controlador

Nesta etapa, criaremos um novo ImageUploadController. Neste arquivo, adicionaremos dois métodos index() e store() para visualização de renderização e lógica de armazenamento de imagem.

Vamos criar ImageUploadController seguindo o comando:

php artisan make:controller ImageUploadController

app/Http/Controllers/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

Etapa 2: adicionar rotas

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

Etapa 3: criar arquivo blade

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

Agora, vá para o seu navegador da web, digite o URL fornecido e visualize a saída do aplicativo:

http://localhost:8000/upload-image

Espero que você entenda o upload de imagens do laravel 9 e possa ajudá-lo…

Fonte:  https://web-tuts.com

#php #laravel #laravel9 

Como Laravel 9 Carregar Imagem e Salvar no Banco de Dados
Jarrod  Douglas

Jarrod Douglas

1657180560

Laravel 9 Télécharger L'image Et L'enregistrer Dans La Base De Données

Aujourd'hui, nous allons montrer comment télécharger une image dans laravel 9. Dans cet exemple, nous expliquerons étape par étape comment laravel 9 télécharger une image et l'enregistrer dans la base de données. Ici, vous apprendrez l'exemple de téléchargement d'image laravel, le code de téléchargement d'image laravel, le téléchargement d'image laravel 9, l'exemple de téléchargement d'image laravel 9. Alors suivons l'étape pour télécharger l'image dans laravel.

Étape 1 : Créer un contrôleur

Dans cette étape, nous allons créer un nouveau ImageUploadController. Dans ce fichier, nous ajouterons deux méthodes index() et store() pour la vue de rendu et la logique de stockage de l'image.

Créons ImageUploadController en suivant la commande :

php artisan make:controller ImageUploadController

app/Http/Controllers/ImageUploadController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
  
class ImageUploadController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('imageUpload');
    }
      
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
      
        $imageName = time().'.'.$request->image->extension();  
       
        $request->image->move(public_path('images'), $imageName);
    
        /* 
            Write Code Here for
            Store $imageName name in DATABASE from HERE 
        */
      
        return back()
            ->with('success','You have successfully upload image.')
            ->with('image',$imageName); 
    }
}

Étape 2 : Ajouter des itinéraires

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ImageUploadController;


Route::get('upload-image', [ ImageUploadController::class, 'index' ]);
Route::post('upload-image', [ ImageUploadController::class, 'store' ])->name('image.store');

Étape 3 : Créer un fichier lame

<!DOCTYPE html>
<html>
<head>
    <title>Laravel 9 Image Upload Example - Web-tuts.com</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    <div class="panel panel-primary">

        <div class="panel-heading mt-5 text-center">
            <h2>Laravel 9 Image Upload Example - Web-tuts.com</h2>
        </div>
 
        <div class="panel-body mt-5">

            @if ($message = Session::get('success'))
                <div class="alert alert-success alert-dismissible fade show mb-2" role="alert">
                    {{ $message }}
                    <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
                </div>
                <img src="images/{{ Session::get('image') }}" class="mb-2" style="width:400px;height:200px;">
            @endif
      
            <form action="{{ route('image.store') }}" method="POST" enctype="multipart/form-data">
                @csrf
      
                <div class="mb-3">
                    <label class="form-label" for="inputImage">Select Image:</label>
                    <input 
                        type="file" 
                        name="image" 
                        id="inputImage"
                        class="form-control @error('image') is-invalid @enderror">
      
                    @error('image')
                        <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
       
                <div class="mb-3">
                    <button type="submit" class="btn btn-success">Upload</button>
                </div>
       
            </form>

        </div>
    </div>
</div>
</body>
</html>

Maintenant, allez dans votre navigateur Web, tapez l'URL donnée et affichez la sortie de l'application :

http://localhost:8000/upload-image

J'espère que vous comprenez le téléchargement d'images laravel 9 et que cela peut vous aider…

Source :  https://web-tuts.com

#php #laravel #laravel9

Laravel 9 Télécharger L'image Et L'enregistrer Dans La Base De Données
Noelia  Graham

Noelia Graham

1657178700

Exemple de connexion Laravel 9 Socialite avec Google Exemple

Bonjour les amis, Aujourd'hui, nous allons montrer Laravel 9 Socialite Login avec Google Example. Dans cet exemple, je vais vous expliquer comment vous connecter avec google dans Laravel. Ici, vous apprendrez à vous connecter à Laravel 9 avec Google en utilisant le package Socialite. Parfois, nous avons besoin d'obtenir de vraies données d'utilisateur, puis nous utilisons la connexion avec les médias sociaux comme Google, Facebook, Twitter, LinkedIn, etc.

Ici, nous vous fournirons un exemple simple de connexion Laravel 9 Socialite avec un exemple de compte Google, connexion Laravel 9 avec Gmail, connexion avec un compte google dans laravel 9.

Exemple de connexion Laravel 9 Socialite avec un compte Google

Étape 1 : Installer Laravel 9

composer create-project laravel/laravel example-app

Étape 2 : Installer JetStream

Maintenant, nous devions utiliser la commande composer pour installer jetstream, alors exécutons la commande suivante et installons la bibliothèque suivante.

composer require laravel/jetstream

Maintenant, passons au package node js :

npm install

lançons package :

npm run dev

Maintenant, nous devions exécuter la commande de migration pour créer une table de base de données.

php artisan migrate

Étape 3 : Installer Socialite

Nous allons maintenant installer le package Socialite qui fournit une API pour se connecter au compte Google. Alors, ouvrez d'abord votre terminal et exécutez la commande suivante.

composer require laravel/socialite

Étape 4 : Créer une application Google

Ici, nous avons besoin de l'identifiant et du secret du client Google afin d'obtenir des informations sur un autre utilisateur. donc si vous n'avez pas de compte Google App, vous pouvez créer à partir d'ici : Google Developers Console . vous pouvez trouver l'écran suivant :

connexion laravel google

Vous devez maintenant cliquer sur  Credentials  et choisir la première option  oAuth  et cliquer sur  le bouton Create new Client ID . Après vous pouvez voir la diapositive ci-dessous :

Après avoir créé un compte, vous pouvez copier votre identifiant client et votre secret.

Ici, vous définirez l'ID de l'application, le secret et l'URL de rappel dans le fichier de configuration. Ouvrez donc config/services.php  et définissez l'identifiant et le secret de cette façon :

config/services.php

return [
    ....
    'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => 'http://localhost:8000/auth/google/callback',
    ],
]

Ensuite, vous devez ajouter l'identifiant client Google et le secret client dans le fichier .env :

.env

GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

Étape 5 : Ajouter une colonne de base de données

Maintenant, nous devons créer une migration pour ajouter google_id dans votre table utilisateur. Exécutons donc la commande suivante.

php artisan make:migration add_google_id_column

Migration

<?php
  
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
  
return new class extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function ($table) {
            $table->string('google_id')->nullable();
        });
    }
  
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
          
    }
};

Mode de mise à jour comme ceci :

app/Modèles/Utilisateur.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;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Laravel\Jetstream\HasProfilePhoto;
use Laravel\Sanctum\HasApiTokens;
  
class User extends Authenticatable
{
    use HasApiTokens;
    use HasFactory;
    use HasProfilePhoto;
    use Notifiable;
    use TwoFactorAuthenticatable;
  
    /**
     * The attributes that are mass assignable.
     *
     * @var string[]
     */
    protected $fillable = [
        'name',
        'email',
        'password',
        'google_id'
    ];
  
    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array
     */
    protected $hidden = [
        'password',
        'remember_token',
        'two_factor_recovery_codes',
        'two_factor_secret',
    ];
  
    /**
     * The attributes that should be cast.
     *
     * @var array
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];
  
    /**
     * The accessors to append to the model's array form.
     *
     * @var array
     */
    protected $appends = [
        'profile_photo_url',
    ];
}

Étape 6 : Créer des itinéraires

Maintenant, en ajoutant la colonne google_id, nous devons d'abord ajouter une nouvelle route pour la connexion Google. ajoutons donc la route suivante dans le fichier routes.php.

routes/web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\GoogleController;
  
Route::get('/', function () {
    return view('welcome');
});
  
Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    return view('dashboard');
})->name('dashboard');
  
Route::controller(GoogleController::class)->group(function(){
    Route::get('auth/google', 'redirectToGoogle')->name('auth.google');
    Route::get('auth/google/callback', 'handleGoogleCallback');
});

Étape 7 : créer un contrôleur

Après l'ajout d'un itinéraire, nous avons besoin d'ajouter une méthode d'authentification Google qui gérera l'URL de rappel Google, etc., placez d'abord le code ci-dessous sur votre fichier GoogleController.php.

app/Http/Controllers/GoogleController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;
use Exception;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
  
class GoogleController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectToGoogle()
    {
        return Socialite::driver('google')->redirect();
    }
          
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function handleGoogleCallback()
    {
        try {
        
            $user = Socialite::driver('google')->user();
         
            $finduser = User::where('google_id', $user->id)->first();
         
            if($finduser){
         
                Auth::login($finduser);
        
                return redirect()->intended('dashboard');
         
            }else{
                $newUser = User::updateOrCreate(['email' => $user->email],[
                        'name' => $user->name,
                        'google_id'=> $user->id,
                        'password' => encrypt('123456dummy')
                    ]);
         
                Auth::login($newUser);
        
                return redirect()->intended('dashboard');
            }
        
        } catch (Exception $e) {
            dd($e->getMessage());
        }
    }
}

Étape 8 : Mettre à jour le fichier lame

Ici, enfin, nous avons besoin d'ajouter la vue suivante, donc créez d'abord un nouveau fichier login.blade.php et mettez le code suivant :

ressources/vues/auth/login.blade.php

<x-guest-layout>
    <x-jet-authentication-card>
        <x-slot name="logo">
            <x-jet-authentication-card-logo />
        </x-slot>
  
        <x-jet-validation-errors class="mb-4" />
  
        @if (session('status'))
            <div class="mb-4 font-medium text-sm text-green-600">
                {{ session('status') }}
            </div>
        @endif
  
        <form method="POST" action="{{ route('login') }}">
            @csrf
  
            <div>
                <x-jet-label for="email" value="{{ __('Email') }}" />
                <x-jet-input id="email" class="block mt-1 w-full" type="email" name="email" :value="old('email')" required autofocus />
            </div>
  
            <div class="mt-4">
                <x-jet-label for="password" value="{{ __('Password') }}" />
                <x-jet-input id="password" class="block mt-1 w-full" type="password" name="password" required autocomplete="current-password" />
            </div>
  
            <div class="block mt-4">
                <label for="remember_me" class="flex items-center">
                    <x-jet-checkbox id="remember_me" name="remember" />
                    <span class="ml-2 text-sm text-gray-600">{{ __('Remember me') }}</span>
                </label>
            </div>
  
            <div class="flex items-center justify-end mt-4">
                @if (Route::has('password.request'))
                    <a class="underline text-sm text-gray-600 hover:text-gray-900" href="{{ route('password.request') }}">
                        {{ __('Forgot your password?') }}
                    </a>
                @endif
  
                <x-jet-button class="ml-4">
                    {{ __('Log in') }}
                </x-jet-button>
            </div>
            <div class="flex items-center justify-end mt-4 align-middle ">
                <a href="{{ route('auth.google') }}">
                    <img src="https://developers.google.com/identity/images/btn_google_signin_dark_normal_web.png" style="margin-left: 3em;">
                </a>
            </div>
        </form>
    </x-jet-authentication-card>
</x-guest-layout>

Exécutez maintenant votre application laravel.

php artisan serve

Maintenant, allez dans votre navigateur Web, tapez l'URL donnée et affichez la sortie de l'application :

http://localhost:8000/login

Production

J'espère que vous comprenez la connexion avec un compte Google et que cela peut vous aider…

Source :  https://web-tuts.com

#php #laravel #laravel9 

Exemple de connexion Laravel 9 Socialite avec Google Exemple

Почта Laravel 9 — простой пример отправки электронной почты в Laravel

Привет друзья! Сегодня мы покажем пример отправки электронной почты Laravel 9. В этом примере мы узнаем, как отправлять электронную почту в приложении laravel 9. мы предоставим вам пример примера отправки почты laravel 9.

Здесь мы покажем пример отправки почты smtp в laravel 9, как отправлять электронную почту в Laravel 9, отправлять почту в Laravel 9 с использованием SMTP, отправлять почту laravel 9 с локального хоста. В этом примере мы предоставим простой пример отправки электронной почты в laravel 9.

Laravel 9 Пример отправки электронной почты

Шаг 1: Сделайте конфигурацию

На первом этапе мы добавим конфигурацию отправки почты с почтовым драйвером, почтовым хостом, почтовым портом, почтовым именем пользователя, почтовым паролем, таким образом, laravel 9. Будем использовать эти настройки отправителя для отправки электронной почты. Таким образом, вы можете просто добавить, как показано ниже.

.env

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=mygoogle@gmail.com
MAIL_PASSWORD=rrnnucvnqlbsl
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=mygoogle@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

Шаг 2: Создайте почтовый класс

На этом этапе мы создадим почтовый класс для отправки электронной почты. Здесь мы создадим класс Demomail для отправки почты.

php artisan make:mail DemoMail

приложение/Почта/DemoMail.php

<?php
  
namespace App\Mail;
  
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
  
class DemoMail extends Mailable
{
    use Queueable, SerializesModels;
  
    public $mailData;
  
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($mailData)
    {
        $this->mailData = $mailData;
    }
  
    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('Mail from Web-tuts.com')
                    ->view('emails.demoMail');
    }
}

Шаг 3: Создайте контроллер

Теперь мы создадим MailController с методом index(), в котором мы напишем код для отправки почты на указанный адрес электронной почты. поэтому сначала давайте создадим контроллер, выполнив команду, и обновим на нем код.

php artisan make:controller MailController

приложение/Http/Контроллеры/MailController.php

<?php
  
namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use Mail;
use App\Mail\DemoMail;
  
class MailController extends Controller
{
    /**
     * Write code on Method
     *
     * @return response()
     */
    public function index()
    {
        $mailData = [
            'title' => 'Mail from Web-tuts.com',
            'body' => 'This is for testing email using smtp.'
        ];
         
        Mail::to('your_email@gmail.com')->send(new DemoMail($mailData));
           
        dd("Email is sent successfully.");
    }
}

Шаг 4: Создайте маршруты

маршруты/web.php

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\MailController;
  
  
Route::get('send-mail', [MailController::class, 'index']);

Шаг 5: Создайте лезвие

На этом этапе мы создадим файл представления блейда и напишем электронное письмо, которое хотим отправить. теперь мы просто пишем какой-то фиктивный текст. создайте следующие файлы в папке «электронная почта».

ресурсы/просмотры/электронная почта/demoMail.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Web-tuts.com</title>
</head>
<body>
    <h1>{{ $mailData['title'] }}</h1>
    <p>{{ $mailData['body'] }}</p>
  
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
     
    <p>Thank you</p>
</body>
</html>

Все необходимые шаги были выполнены, теперь вам нужно ввести следующую команду и нажать Enter, чтобы запустить приложение Laravel:

php artisan serve

Теперь перейдите в свой веб-браузер, введите указанный URL-адрес и просмотрите вывод приложения:

http://localhost:8000/send-mail

Я надеюсь, вы понимаете, как laravel 9 отправляет электронную почту, и это может вам помочь…

Источник:  https://web-tuts.com

#php #laravel #laravel9 

Почта Laravel 9 — простой пример отправки электронной почты в Laravel