gpt4 book ai didi

php - Laravel 重定向路由无法使用 return 但如果我使用 echo 它的工作为什么?

转载 作者:搜寻专家 更新时间:2023-10-31 21:00:18 25 4
gpt4 key购买 nike

我在使用 laravel redirect->route('routeName') 时得到了这种奇怪的体验。这是代码:

public static function loginCheckWithRedirect($routeName = false){

if(functions::loginCheck()){
if($routeName && is_string($routeName)){
return redirect()->route($routeName);
}
}

return false;
}

如果我使用 echo redirect()->route($routeName),它会起作用。但是 return redirect()->route($routeName) 不会。为什么?

最佳答案

您需要了解returnecho 之间的区别

  1. Return:当您从另一个方法调用一个方法并返回一些数据时,返回数据将取代被调用的方法。
  2. Echo:当您使用 echo 时,它不会向调用函数或主函数返回一些数据,而是直接显示数据。

示例

function myFun($param){
return $param;
}

function ini(){
myFun("Hello!");
}

以上代码将不会在用户屏幕上显示任何内容,因为您没有在任何函数中添加显示代码。

但是如果你使用其中之一:

function myFun($param){
return $param;
}

function ini(){
echo myFun("Hello!");
}

或者:

function myFun($param){
echo $param;
}

function ini(){
myFun("Hello!");
}

输出将是Hello!

回到您的问题,您需要在被调用方法中回显重定向调用,或者在调用方方法中返回返回的重定向调用

这是我做的:

路由文件

    use App\Http\Controllers\TestController;

Route::get('/', function(){
return TestController::loginCheckWithRedirect('myRoute');
});

Route::get('/test', function(){
return 'Redirected...';
})->name("myRoute");

测试 Controller

    <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class TestController extends Controller
{
public static function loginCheckWithRedirect($routeName = false){

if(functions::loginCheck()){
if($routeName && is_string($routeName)){
return redirect()->route($routeName);
}
}

return false;
}
}

上面的代码重定向正确。希望对您有所帮助...

关于php - Laravel 重定向路由无法使用 return 但如果我使用 echo 它的工作为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44564675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com