使用CodeZero-Be / Laravel-Localizatization-Routes和Livewire的问题
我使用Livewire的问题。一切都很好,但是当我从视图/Livewire/Filtro键入输入时,数据刷新和Dispapear数据。 当我单击URL时,数据会很好。 IVE刷新URL以查看数据。 IVE试过没有前控制器的Displya Blade,清晰的缓存,清晰的路线
http/livewire/filtro
use Livewire\WithPagination;
class Filtro extends Component
{
use WithPagination;
protected $paginationTheme = 'bootstrap';
protected $queryString = ['marca'];
public $marca;
public function render()
{
return view('livewire.filtro', [
'productos' => Producto::where('deleted',0)
->where('marca', 'like', '%'.$this->marca.'%' )->paginate(20)
]);
}
}
路线/web
<?php
use Illuminate\Support\Facades\Route;
/*
Web Routes
--------------------------------------------------------------------------
*/
// Localized
Route::localized(function () {
Route::get('/anuncios', function () {
return view('front.anuncios');
});
Route::get('/', function () {
return view('front.index');
});
Route::get('/index', [App\Http\Controllers\FrontController::class, 'index'])->name('front.index');
});
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::fallback(\CodeZero\LocalizedRoutes\Controller\FallbackController::class)
->middleware(\CodeZero\LocalizedRoutes\Middleware\SetLocale::class);
views/livewire/filtro
<div class="listing__text__top">
<div class="listing__text__top__left">
<h5>Todoterrenos</h5>
<span>{{ $productos->count() }} Resultados</span>
<input type="text" class="form-control" placeholder="Search" wire:model.debounce.1000ms="marca" />
<div wire:loading>
Processing ...
</div>
<div wire:offline>
You are now offline.
</div>
<div class="listing__text__top__right">Ordenar <i class="fa fa-sort-amount-asc"></i></div>
</div>
@if($productos->count()) @foreach($productos as $producto)
@if($producto->garantizado === 'Si')
<div class="listing__item__text__info__right pr-3">Garantizado</div>
@endif
<div class="">
<a href="{{ route('front.detalle', $producto->titulo_slug) }}"><img src="{{ asset('img/productos/'.$producto->imagen_1)}}" height="150" alt="..." class="rounded float-left pr-2"></a>
</div>
<div class="listing__item__text">
<div class="listing__item__text__inside ">
<h5><a href="{{ route('front.detalle', $producto->titulo_slug) }}">{{ $producto->titulo }}</a></h5>
<div class="listing__item__text__rating">
<span>{{ number_format($producto->km,0,',','.') }} km</span>
<h6>{{ number_format($producto->precio_contado,0,',','.' ) }} €</h6>
</div>
<ul>
<li><i class="fa fa-map-marker"></i> {{ $producto->municipio }}, {{ $producto->municipio_slug }}</li>
</ul>
</div>
</div>
</div>
@endforeach
@else
No hay productos
@endif
{{ $productos->links() }}
app/http /comtrollers/frontController
namespace App\Http\Controllers;
use App\Models\Front;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Producto;
use App\Models\Link;
use Illuminate\Support\Facades\Session;
use App;
class FrontController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function anuncios()
{
return view('front.anuncios');
}
public function index()
{
return view('front.index');
}
public function detalle($titulo_slug)
{
// dd($titulo_slug);
if($titulo_slug !='index' && $titulo_slug !='blog'){
$producto = Producto::where('titulo_slug',$titulo_slug)
->first();
$num = $producto->visitas;
$num ++;
$producto->visitas = $num ;
$producto->save();
return view('front.detalle')->with('producto',$producto);
}
}
public function locale($lang)
{
App::setlocale($lang);
session(['locale' => $lang]);
return view('front.index');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Front $front
* @return \Illuminate\Http\Response
*/
public function destroy(Front $front)
{
//
}
}
Ive problems using livewire. All works fine, but when I type the input, data refresh and dissapear data from views/livewire/filtro.
When I click on url, data comes well.
Ive to refresh url to view data.
Ive tried displya blade without Front Controller, clear cache, clear routes
Http/Livewire/Filtro
use Livewire\WithPagination;
class Filtro extends Component
{
use WithPagination;
protected $paginationTheme = 'bootstrap';
protected $queryString = ['marca'];
public $marca;
public function render()
{
return view('livewire.filtro', [
'productos' => Producto::where('deleted',0)
->where('marca', 'like', '%'.$this->marca.'%' )->paginate(20)
]);
}
}
routes/web
<?php
use Illuminate\Support\Facades\Route;
/*
Web Routes
--------------------------------------------------------------------------
*/
// Localized
Route::localized(function () {
Route::get('/anuncios', function () {
return view('front.anuncios');
});
Route::get('/', function () {
return view('front.index');
});
Route::get('/index', [App\Http\Controllers\FrontController::class, 'index'])->name('front.index');
});
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::fallback(\CodeZero\LocalizedRoutes\Controller\FallbackController::class)
->middleware(\CodeZero\LocalizedRoutes\Middleware\SetLocale::class);
views/livewire/filtro
<div class="listing__text__top">
<div class="listing__text__top__left">
<h5>Todoterrenos</h5>
<span>{{ $productos->count() }} Resultados</span>
<input type="text" class="form-control" placeholder="Search" wire:model.debounce.1000ms="marca" />
<div wire:loading>
Processing ...
</div>
<div wire:offline>
You are now offline.
</div>
<div class="listing__text__top__right">Ordenar <i class="fa fa-sort-amount-asc"></i></div>
</div>
@if($productos->count()) @foreach($productos as $producto)
@if($producto->garantizado === 'Si')
<div class="listing__item__text__info__right pr-3">Garantizado</div>
@endif
<div class="">
<a href="{{ route('front.detalle', $producto->titulo_slug) }}"><img src="{{ asset('img/productos/'.$producto->imagen_1)}}" height="150" alt="..." class="rounded float-left pr-2"></a>
</div>
<div class="listing__item__text">
<div class="listing__item__text__inside ">
<h5><a href="{{ route('front.detalle', $producto->titulo_slug) }}">{{ $producto->titulo }}</a></h5>
<div class="listing__item__text__rating">
<span>{{ number_format($producto->km,0,',','.') }} km</span>
<h6>{{ number_format($producto->precio_contado,0,',','.' ) }} €</h6>
</div>
<ul>
<li><i class="fa fa-map-marker"></i> {{ $producto->municipio }}, {{ $producto->municipio_slug }}</li>
</ul>
</div>
</div>
</div>
@endforeach
@else
No hay productos
@endif
{{ $productos->links() }}
App/Http/Comtrollers/FrontController
namespace App\Http\Controllers;
use App\Models\Front;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Producto;
use App\Models\Link;
use Illuminate\Support\Facades\Session;
use App;
class FrontController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function anuncios()
{
return view('front.anuncios');
}
public function index()
{
return view('front.index');
}
public function detalle($titulo_slug)
{
// dd($titulo_slug);
if($titulo_slug !='index' && $titulo_slug !='blog'){
$producto = Producto::where('titulo_slug',$titulo_slug)
->first();
$num = $producto->visitas;
$num ++;
$producto->visitas = $num ;
$producto->save();
return view('front.detalle')->with('producto',$producto);
}
}
public function locale($lang)
{
App::setlocale($lang);
session(['locale' => $lang]);
return view('front.index');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Front $front
* @return \Illuminate\Http\Response
*/
public function destroy(Front $front)
{
//
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论