1648665000
Typehead js es una biblioteca de JavaScript flexible que proporciona una base sólida para crear mecanografiados robustos. El mecanografiado anticipado. js consta de dos componentes: el motor de sugerencias, Bloodhound, y la vista de interfaz de usuario, Typeahead. El motor de sugerencias es responsable de calcular las sugerencias para una consulta determinada.
En este tutorial, lo guiará paso a paso sobre cómo implementar la búsqueda de autocompletar con la base de datos en la aplicación laravel 8 con jquery typeahead js.
Ahora, ejecute el siguiente comando en la terminal para descargar la aplicación laravel 8:
composer create-project --prefer-dist laravel/laravel blog
Después de instalar con éxito la aplicación laravel, vaya al archivo .env de su proyecto y configure la credencial de la base de datos y avance al siguiente paso:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Antes de agregar registros falsos en la base de datos, primero migre la tabla en la base de datos usando el siguiente comando:
php artisan migrate
Añadir registros falsos en nuestra base de datos. use el siguiente comando y agregue 100 registros falsos en la base de datos:
php artisan tinker
factory(App\User::class, 100)->create();
Ahora cree dos rutas, una para mostrar el cuadro de entrada de búsqueda y la segunda para la búsqueda de autocompletar usando el método de autocompletar jquery typeahead js:
use App\Http\Controllers\AutoCompleteController;
Route::get('search', [AutoCompleteController::class, 'index']);
Route::get('autocomplete', [AutoCompleteController::class, 'search']);
Ejecute el siguiente comando en la terminal para crear un archivo de nombre de controlador AutoCompleteController.php:
php artisan make:controller AutoCompleteController
Después de crear con éxito el controlador, vaya a app/controllers/AutoCompleteController.php y coloque el siguiente código:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class AutoCompleteController extends Controller
{
public function index()
{
return view('search');
}
public function search(Request $request)
{
$search = $request->get('term');
$result = User::where('name', 'LIKE', '%'. $search. '%')->get();
return response()->json($result);
}
}
En este paso, cree un archivo de vista de hoja. Vaya a app/resources/views y cree un nombre de archivo search.blade.php .
Después de crear el archivo blade, coloque el siguiente código html aquí con typehead js y el archivo de biblioteca css:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>Autocomplete Search Using Typeahead JS - Tutsmake.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.1/bootstrap3-typeahead.min.js"></script>
<style>
.container{
padding: 10%;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-12"><h2>Laravel AutoComplete Search Using Typeahead JS</h2></div>
<div class="col-12">
<div id="custom-search-input">
<div class="input-group">
<input id="search" name="search" type="text" class="form-control" placeholder="Search" />
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var route = "{{ url('autocomplete') }}";
$('#search').typeahead({
source: function (term, process) {
return $.get(route, { term: term }, function (data) {
return process(data);
});
}
});
</script>
</body>
</html>
Y coloque un código de secuencia de comandos en el archivo search.blade.php. El código de la secuencia de comandos funcionará para buscar datos de la base de datos y devolver datos a nuestro archivo de vista.
Ejecute el siguiente comando en la terminal para iniciar el servidor de desarrollo:
php artisan serve
If you want to run the project diffrent port so use this below command
php artisan serve --port=8080
Abra el navegador y presione la siguiente URL:
Http://localhost:8000/search
En este tutorial, ha aprendido con éxito cómo implementar la búsqueda de autocompletar en la aplicación laravel 8 usando typeahead js. nuestros ejemplos se ejecutan rápidamente.
1648665000
Typehead js es una biblioteca de JavaScript flexible que proporciona una base sólida para crear mecanografiados robustos. El mecanografiado anticipado. js consta de dos componentes: el motor de sugerencias, Bloodhound, y la vista de interfaz de usuario, Typeahead. El motor de sugerencias es responsable de calcular las sugerencias para una consulta determinada.
En este tutorial, lo guiará paso a paso sobre cómo implementar la búsqueda de autocompletar con la base de datos en la aplicación laravel 8 con jquery typeahead js.
Ahora, ejecute el siguiente comando en la terminal para descargar la aplicación laravel 8:
composer create-project --prefer-dist laravel/laravel blog
Después de instalar con éxito la aplicación laravel, vaya al archivo .env de su proyecto y configure la credencial de la base de datos y avance al siguiente paso:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Antes de agregar registros falsos en la base de datos, primero migre la tabla en la base de datos usando el siguiente comando:
php artisan migrate
Añadir registros falsos en nuestra base de datos. use el siguiente comando y agregue 100 registros falsos en la base de datos:
php artisan tinker
factory(App\User::class, 100)->create();
Ahora cree dos rutas, una para mostrar el cuadro de entrada de búsqueda y la segunda para la búsqueda de autocompletar usando el método de autocompletar jquery typeahead js:
use App\Http\Controllers\AutoCompleteController;
Route::get('search', [AutoCompleteController::class, 'index']);
Route::get('autocomplete', [AutoCompleteController::class, 'search']);
Ejecute el siguiente comando en la terminal para crear un archivo de nombre de controlador AutoCompleteController.php:
php artisan make:controller AutoCompleteController
Después de crear con éxito el controlador, vaya a app/controllers/AutoCompleteController.php y coloque el siguiente código:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class AutoCompleteController extends Controller
{
public function index()
{
return view('search');
}
public function search(Request $request)
{
$search = $request->get('term');
$result = User::where('name', 'LIKE', '%'. $search. '%')->get();
return response()->json($result);
}
}
En este paso, cree un archivo de vista de hoja. Vaya a app/resources/views y cree un nombre de archivo search.blade.php .
Después de crear el archivo blade, coloque el siguiente código html aquí con typehead js y el archivo de biblioteca css:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>Autocomplete Search Using Typeahead JS - Tutsmake.com</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.1/bootstrap3-typeahead.min.js"></script>
<style>
.container{
padding: 10%;
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<div class="col-12"><h2>Laravel AutoComplete Search Using Typeahead JS</h2></div>
<div class="col-12">
<div id="custom-search-input">
<div class="input-group">
<input id="search" name="search" type="text" class="form-control" placeholder="Search" />
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var route = "{{ url('autocomplete') }}";
$('#search').typeahead({
source: function (term, process) {
return $.get(route, { term: term }, function (data) {
return process(data);
});
}
});
</script>
</body>
</html>
Y coloque un código de secuencia de comandos en el archivo search.blade.php. El código de la secuencia de comandos funcionará para buscar datos de la base de datos y devolver datos a nuestro archivo de vista.
Ejecute el siguiente comando en la terminal para iniciar el servidor de desarrollo:
php artisan serve
If you want to run the project diffrent port so use this below command
php artisan serve --port=8080
Abra el navegador y presione la siguiente URL:
Http://localhost:8000/search
En este tutorial, ha aprendido con éxito cómo implementar la búsqueda de autocompletar en la aplicación laravel 8 usando typeahead js. nuestros ejemplos se ejecutan rápidamente.
1595201363
First thing, we will need a table and i am creating products table for this example. So run the following query to create table.
CREATE TABLE `products` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`description` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
Next, we will need to insert some dummy records in this table that will be deleted.
INSERT INTO `products` (`name`, `description`) VALUES
('Test product 1', 'Product description example1'),
('Test product 2', 'Product description example2'),
('Test product 3', 'Product description example3'),
('Test product 4', 'Product description example4'),
('Test product 5', 'Product description example5');
Now we are redy to create a model corresponding to this products table. Here we will create Product model. So let’s create a model file Product.php file under app directory and put the code below.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
protected $fillable = [
'name','description'
];
}
Now, in this second step we will create some routes to handle the request for this example. So opeen routes/web.php file and copy the routes as given below.
routes/web.php
Route::get('product', 'ProductController@index');
Route::delete('product/{id}', ['as'=>'product.destroy','uses'=>'ProductController@destroy']);
Route::delete('delete-multiple-product', ['as'=>'product.multiple-delete','uses'=>'ProductController@deleteMultiple']);
#laravel #delete multiple rows in laravel using ajax #laravel ajax delete #laravel ajax multiple checkbox delete #laravel delete multiple rows #laravel delete records using ajax #laravel multiple checkbox delete rows #laravel multiple delete
1621508419
Hire our expert team of Laravel app developers for flexible PHP applications across various cloud service providers.
With this easy build technology, we develop feature-rich apps that make your complex business process a lot easier. Our apps are,
Get your business a best in classlaravel app. Hire laravel app developers in India. We have the best organizational set-up to provide you the most advanced app development services.
#laravel app development company india #hire laravel developers india #laravel app development company #hire laravel developers #laravel development agency #laravel app programmers
1656705960
La importación masiva de datos es una característica útil para agregar registros almacenados en un archivo a la base de datos. Los datos pueden almacenarse en formato CSV, Excel, XML, ODS, etc.
En este tutorial, muestro cómo puede importar datos CSV y Excel a la base de datos MySQL usando el paquete Laravel Excel en el proyecto Laravel 8.
Requisito –
^7.2\|^8.0
^5.8
^1.21
^1.0
php_zip
habilitadaphp_xml
habilitadaphp_gd2
habilitadaphp_iconv
habilitadaphp_simplexml
habilitadaphp_xmlreader
habilitadaphp_zlib
habilitadaInstale el paquete usando composer –
composer require maatwebsite/excel
Si recibe un error al ejecutar el comando anterior, ejecute el siguiente comando:
composer require psr/simple-cache:^1.0 maatwebsite/excel
Después de eso nuevamente ejecute –
composer require maatwebsite/excel
config/app.php
archivo.Maatwebsite\Excel\ExcelServiceProvider::class
en 'providers'
–'providers' => [
....
....
....
Maatwebsite\Excel\ExcelServiceProvider::class
];
'Excel' => Maatwebsite\Excel\Facades\Excel::class
en 'aliases'
–'aliases' => [
....
....
....
'Excel' => Maatwebsite\Excel\Facades\Excel::class
];
Ejecute el comando –
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
Esto creará un nuevo excel.php
archivo en formato config/
.
Abrir .env
archivo.
Especifique el host, el nombre de la base de datos, el nombre de usuario y la contraseña.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=tutorial
DB_USERNAME=root
DB_PASSWORD=
Employees
mediante la migración y agregue algunos registros.php artisan make:migration create_employees_table
database/migrations/
la carpeta desde la raíz del proyecto.create_employees_table
y ábralo.up()
método.public function up()
{
Schema::create('employees', function (Blueprint $table) {
$table->id();
$table->string('username');
$table->string('name');
$table->string('email');
$table->smallInteger('age');
$table->timestamps();
});
}
php artisan migrate
Employees
modelo.php artisan make:model Employees
app/Models/Employees.php
archivo.$fillable
propiedad.Código completado
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Employees extends Model
{
use HasFactory;
protected $fillable = [
'username','name','email','age'
];
}
Estoy creando 2 clases de importación solo por ejemplo:
1. Clase de importación de empleados:
php artisan make:import EmployeesImport --model=Employees
app/Imports/EmployeesImport.php
archivo.$row
Array e inserte un registro si la identificación del correo electrónico no existe en la employees
tabla; de lo contrario, devuelva nulo.NOTA: esta clase de importación comienza a leer registros desde la primera fila. Expliqué cómo omitir la primera fila que contiene el encabezado en la siguiente clase de Importación.
Archivo CSV sin fila de encabezado –
usuario1 | Usuario1 u1 | usuario1@makitweb.com | 28 |
usuario2 | Usuario2 u2 | usuario2@makitweb.com | 24 |
Código completado
<?php
namespace App\Imports;
use App\Models\Employees;
use Maatwebsite\Excel\Concerns\ToModel;
class EmployeesImport implements ToModel {
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row) {
// Check email already exists
$count = Employees::where('email',$row[2])->count();
if($count > 0){
return null;
}
return new Employees([
'username' => $row[0],
'name' => $row[1],
'email' => $row[2],
'age' => $row[3],
]);
}
}
2. Clase Employees2Import –
php artisan make:import Employees2Import --model=Employees
app/Imports/Employees2Import.php
archivo.$rows
los datos de la matriz. Si se valida con éxito, inserte el registro si la identificación del correo electrónico no existe en la employees
tabla; de lo contrario, devolverá un error.NOTA: si
WithHeadingRow
se implementa,$rows
Arrays contiene encabezados de fila como nombres clave en lugar de índice.
Archivo CSV con fila de encabezado –
Nombre de usuario | Nombre | Correo electrónico | Años |
---|---|---|---|
yssyogesh | yogesh singh | yogesh@makitweb.com | 28 |
bsonarika | Sonarika Bhadoria | bsonarika@makitweb.com | 28 |
vishal | Vishal Sahu | vishal@makitweb.com | treinta y uno |
Código completado
<?php
namespace App\Imports;
use App\Models\Employees;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Illuminate\Support\Facades\Validator;
class Employees2Import implements ToCollection ,WithHeadingRow
{
public function collection(Collection $rows){
// Validate
Validator::make($rows->toArray(), [
'*.username' => 'required|string',
'*.name' => 'required|string',
'*.email' => 'required|email',
'*.age' => 'required|integer',
],[
'*.username.required'=> "The username field is required.",
'*.username.string'=> "The username must be string.",
'*.name.required'=> "The name field is required.",
'*.name.string'=> "The name must be string.",
'*.email.required'=> "The email field is required.",
'*.email.email'=> "The email must be a valid email address.",
'*.age.integer'=> "The age must be an integer."
])->validate();
foreach ($rows as $row) {
// Check email already exists
$count = Employees::where('email',$row['email'])->count();
if($count > 0){
continue;
}
Employees::create([
'username' => $row['username'],
'name' => $row['name'],
'email' => $row['email'],
'age' => $row['age'],
]);
}
}
// Specify header row index position to skip
public function headingRow(): int {
return 1;
}
}
routes/web.php
archivo.Código completado
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\EmployeesController;
Route::get('/', [EmployeesController::class, 'index'])->name('home');
Route::post('employees/importdata/', [EmployeesController::class, 'importData'])->name('employees.importdata');
Route::post('employees/validateandimportdata/', [EmployeesController::class, 'validateAndImportdata'])->name('employees.validateandimportdata');
EmployeesController
controlador.php artisan make:controller EmployeesController
app/Http/Controllers/EmployeesController.php
archivo.EmployeesImport
_ Employees2ImportExcel
index
vista.Excel::import()
.Pase 2 parámetros –
EmployeesImport
instancia de clase.Excel::import()
.Pase 2 parámetros –
Employees2Import
instancia de clase.public/employees.xlsx
carpeta).Código completado
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Imports\EmployeesImport;
use App\Imports\Employees2Import;
use Excel;
class EmployeesController extends Controller
{
public function index(){
return view('index');
}
// Import data
public function importdata(Request $request){
Excel::import(new EmployeesImport, $request->file('file')->store('temp'));
return back()->with('success', 'Import successfully!');
}
// Validate and Import data
public function validateAndImportdata(Request $request){
Excel::import(new Employees2Import, "employees.xlsx");
return back()->with('success', 'Import successfully!');
}
}
Crear index.blade.php
archivo en resources/views/
carpeta.
Crear 2 <form>
-
<form >
acción fijada a {{ route('employees.importdata') }}
. Cree un elemento de archivo y un botón de envío.<form>
acción fijada a {{ route('employees.validateandimportdata') }}
. Crear un botón de envío.Bucle $errors->all()
para mostrar errores.
Código completado
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>How to Import data into MySQL database in Laravel 8</title>
<!-- CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" >
</head>
<body>
<div class="container mt-5">
<!-- Success message -->
@if(Session::has('success'))
<div class="alert alert-success">
{{ Session::get('success') }}
</div>
@endif
<form method='post' action="{{ route('employees.importdata') }}" enctype="multipart/form-data">
@csrf
<div class="mb-3">
<label for="file" class="form-label">File</label>
<input type="file" class="form-control" id="file" name="file" value="">
</div>
<button type="submit" class="btn btn-success">Import</button>
</form>
<!-- Import data with validation -->
<h2 class='mt-5'>Validate and import data</h2>
{{-- Display errors --}}
@if (count($errors) > 0)
<div class="row">
<div class="col-md-12 ">
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }} </li>
@endforeach
</ul>
</div>
</div>
</div>
@endif
<form method='post' action="{{ route('employees.validateandimportdata') }}" >
@csrf
<button type="submit" class="btn btn-success">Import</button>
</form>
</div>
</body>
</html>
Asegúrese de validar el registro antes de insertar o actualizar registros en la clase Importar. Especifique WithHeadingRow
en Clase de importación solo si el archivo de importación tiene una fila de encabezado.
Fuente: https://makitweb.com
1670234150
In the present world, PHP is a well-liked framework. Laravel is one of the most well-known frameworks out there. The popularity of Laravel is due to its expressiveness, flexibility, good controllers, strength, seamless caching, and time savings when handling tasks like routing, authentication, sessions, and many more.
Laravel is a PHP framework that everyone who knows PHP should be familiar with. The Laravel PHP framework is simple to learn and use, but it is packed with useful features. Despite rising market competition, many developers consider Laravel to be one of the best PHP frameworks available.
WPWeb Infotech is a top Laravel development company in India and the US since 2015. They develop reliable, scalable Laravel web and mobile apps using Ajax-enabled widgets, MVC patterns, and built-in tools. WPWeb Infotech has top-notch expertise in combining a variety of front- and back-end technologies like Laravel + VueJS, Laravel + Angular, and Laravel + ReactJS to create scalable and secure web architectures, so you don't have to worry about scalability and flexibility while developing your product. They understand business scale and recommend technology that fits. Agile experts reduce web and mobile app development time and risk.
When it comes to hiring Laravel developers from India, they are the best choice because their Laravel developers can work according to your time zone to provide you with hassle-free, innovative, and straightforward web development solutions. Being the most trusted Laravel development company in India, they can help you reach new heights of success, unleashing the power of the Laravel PHP framework.
Partner with one of India’s best Laravel Development Company and get the most expertise in Laravel development.
#laravel #laravel-development #laravel-development-company #laravel-development-services #hire-laravel-developers