标签: laravel-route

如何在同一位置传递不同的动态参数来访问laravel中的不同视图页面

这些是我遇到问题的路线

获取特定城市注册地点列表的路由

例如: http://localhost:8000/London , http://localhost:8000/London/Restaurants

Route::group(['namespace' => 'Page'], function() {
    Route::group(['prefix' => '{city}', 'where'  => ['city' => '[\w\d]+']], function() {
        Route::get('/', 'CityPageController@showCityPage')->name('cityPage');
    });
});
Run Code Online (Sandbox Code Playgroud)

获取特定用户个人资料及其详细信息(例如评论、照片等)的路由。

例如: http://localhost:8000/Johnhttp://localhost:8000/John/reviewshttp://localhost:8000/John/photos

Route::group(['namespace' => 'User'], function() {
    Route::group(['middleware' => 'verified'], function() {
        Route::group(['prefix' => '{username}', 'where'  => ['username' => '[\w\d]+']], function() {
            Route::get('/', 'ProfileController@showProfilePage')->name('profilePage');
            Route::get('/reviews', 'ReviewController@showReviewPage')->name('reviewPage');
            Route::get('/photos', 'ImageController@showPhotoPage')->name('photoPage');
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是这两条路线不能同时工作。

位于另一条路线之上的路线优先于另一条路线。

如何解决这个路由问题。

编辑

我知道有一种方法可以实现此功能,但我不知道如何实现。任何帮助表示赞赏。

routing laravel laravel-routing laravel-route

5
推荐指数
2
解决办法
237
查看次数

Laravel 7.x 在路由组中命名路由

我正在学习 Laravel,我想使用前缀对一些路由进行分组并命名每个路由,所以我得到了这样的东西

Route::prefix('customers')->group(
    function(){
        Route::get('/', 'CustomerController@index')->name('customers.index');
        Route::get('/create', 'CustomerController@create')->name('customers.create');
        Route::post('/', 'CustomerController@store')->name('customers.store');
});
Run Code Online (Sandbox Code Playgroud)

我想避免写“客户”。在每条路线名称中。

我尝试过使用名称,但它无法识别路线名称前缀“客户”。

Route::group(['prefix' => 'customers', 'name' => 'customers.'],
    function(){
        Route::get('/', 'CustomerController@index')->name('index');
        Route::get('/create', 'CustomerController@create')->name('create');
        Route::post('/', 'CustomerController@store')->name('store');
});
Run Code Online (Sandbox Code Playgroud)

我发现的另一种方法是使用asuse,但它似乎有很多代码,而且看起来不太干净,实际上第一个看起来像是一种更干净的方法。

Route::group([
    'prefix' => 'customers',
    'as' => 'customers.'
    ],
    function(){
        Route::get('/', ['as'=>'index', 'uses' => 'CustomerController@index']);
        Route::get('/create', ['as'=>'create', 'uses' => 'CustomerController@create']);
        Route::post('/', ['as'=>'store', 'uses' => 'CustomerController@store']);
});
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

php laravel laravel-route laravel-7

2
推荐指数
2
解决办法
1393
查看次数

发布请求后 Laravel 重定向到登录页面

我正在将表单数据插入数据库,成功提交后我想重定向到潜在客户页面。

HTML 表单:

<form method="post" action="{{url('lead-message')}}">
     {{csrf_field()}}
     <input type="hidden" name="lead_id" value="{{$leads->id}}">
     <div class="form-group">
         <label for="exampleFormControlTextarea1">Type your message*</label>
         <textarea class="form-control" name="lead_message" id="lead_message" rows="3" value="" required></textarea>      
     </div>
     <button type="submit" class="btn btn-primary">Send Message</button>
</form>
Run Code Online (Sandbox Code Playgroud)

路线:

Route::group( ['middleware' => ['auth', 'phoneverified']], function() {
    Route::resource('leads', 'LeadsController');
});
Run Code Online (Sandbox Code Playgroud)

控制器:

public function leadMessage (Request $request) {
    $validate = $request->validate([
    'lead_message' => 'required',
    ]);

    $storeMessage = new LeadMessage;
    $storeMessage->lead_id = $request->lead_id;
    $storeMessage->message = $request->lead_message;
    $storeMessage->save();

    Session::flush('success', 'Message sends successfuly!');
    return redirect('leads/'.$request->lead_id);
}
Run Code Online (Sandbox Code Playgroud)

但是成功提交后,它重定向到登录页面而不是潜在客户页面,当我再次登录时,它直接将我重定向到潜在客户页面。

我不知道我哪里出错了。我将不胜感激在这方面的任何帮助。

php redirect laravel-5 laravel-route

1
推荐指数
1
解决办法
40
查看次数