通过魔术方法 Illuminate\Http\Request 对象 Laravel 访问属性

我正在接管之前编写的 Laravel 应用程序,并尝试了解各种事物如何组合在一起。在这样做的过程中,我发现了以下代码:


class MyController extends Controller

{

    public function index(Request $request)

    {

        if ($request->popular) {

            //....

        }

        //...

    }

我不太确定 if 语句试图访问什么。当我将鼠标悬停在该$request→popular部分上时,它表示popular正在通过魔术方法访问该属性。我也无法在代码中的其他任何地方找到任何名为“popular”的属性/方法。有谁知道这可能想做什么?


我知道该属性popular不是对象的内部属性Request,因为在代码的后面,程序员还使用这种魔术方法格式访问各种其他属性。


它是某种访问 URI 的简写方式吗?(例如,也许/api/popular)


哔哔one
浏览 118回答 1
1回答

摇曳的蔷薇

是Input Via Dynamic Properties。它还开着Illuminate\Http\Request。例如,如果您的应用程序表单之一包含一个name字段,您可以像这样访问该字段的值:$name = $request->name;和这个是一样的:$name = $request->input('name');当使用动态属性时,Laravel 将首先在请求负载中查找参数的值。如果不存在,Laravel 将在路由参数中搜索该字段(例如:查询字符串)。在你的例子中,它可能是这样的:/api/posts?popular=1如果您想知道这是如何做到的,请使用神奇的 PHP__get()方法。
打开App,查看更多内容
随时随地看视频慕课网APP