【发布时间】:2021-07-19 16:18:27
【问题描述】:
我安装了 Laravel Livewire 并按照安装教程(包括脚本等)。
我有一个名为 /comparateur 的页面,它有一个表单,然后在同一页面上显示结果(sql 请求)。
我把livewire测试代码(计数器)放在https://laravel-livewire.com/docs/2.x/quickstart上
第一个问题我没有看到用于递增计数器的字符“+”(可能是 css 冲突?)。
但真正的问题是:
The POST method is not supported for this route. Supported methods: GET, HEAD.
当我点击“+”时我有这个。
我的路线:
Route::get('/comparateur', function () {
return view('comparateur');
})->name('comparateur');
Route::post('comparateur', 'ComparateurController@post')->name('comparateur');
app/http/livewire/counter.php:
<?php
namespace App\Http\Livewire;
use Livewire\Component;
class Counter extends Component
{
public $count = 0;
public function increment()
{
$this->count++;
}
public function render()
{
return view('livewire.counter');
}
}
counter.blade.php:
<div style="text-align: center">
<button wire:click="increment">+</button>
<h1>{{ $count }}</h1>
</div>
路由/web.php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
use App\Vpns;
use App\Blog;
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
],
function()
{
Route::get('/', function () {
return view('welcome');
});
Route::group(['prefix' => 'laravel-filemanager', 'middleware' => ['web', 'auth']], function () {
\UniSharp\LaravelFilemanager\Lfm::routes();
});
Route::get('go/{nameOfProduct}', ['as' => 'go.to' , 'uses' => 'VpnController@goTo']);
Route::get('vpn/free', ['as' => 'vpn.free' , 'uses' => 'VpnController@free']);
Route::get('vpn/tools', ['as' => 'vpn.tools' , 'uses' => 'VpnController@tools']);
Route::resource('/vpn', 'VpnController')->name('*', 'vpn');
Route::resource('/blog', 'BlogController')->name('*', 'blog');
Route::get('/aboutvpn', function () {
return view('vpn.about');
});
Route::get('/home', function () {
return view('welcome');
});
Route::get('/comparateur', Counter::class)->name('comparateur');
Route::post('/comparateur', 'ComparateurController@post')->name('comparateur');
Auth::routes();
Route::get('logout', '\App\Http\Controllers\Auth\LoginController@logout');
Route::group(['middleware' => ['auth']], function () { Route::get('/profile', function() { return view('profile'); }); });
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
});
编辑:
终于找到了答案。因为本地化插件https://github.com/mcamara/laravel-localization#installation
它在 URL 上添加 /fr /pt /de 等,因此 /comparateur 页面不存在,但 /fr/comparateur 是。
但我不知道如何使网站正常运行
【问题讨论】:
-
php artisan route:clear再试一次 -
你能展示你的livewire组件代码吗?你也试过清除路由缓存吗?
-
已经做了 php artisan route:clear : 仍然不工作/我更新了我的原始帖子。 + 文字显示还可以,只是在浅灰色上是白色的......