在哪里可以找到Route :: resource支持的选项?

时间:2019-07-28 22:31:34

标签: php laravel-5

在我的web.php中,我有以下内容:

    Route::resource('transactions/debit', 'TransactionController', [
        'except' => ['show', 'destroy'],
        'names' => [
            'index' => 'transactions.debit.index',
            'create' => 'transactions.debit.create',
            'store' => 'transactions.debit.store',
            'edit' => 'transactions.debit.edit',
            'update' => 'transactions.debit.update',
        ],
    ]);

我尝试了Laravel参考,但是它唯一说的是$options是一个数组。

在哪里可以找到$options方法和其他方法支持的所有resource

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要有关文档中可用内容的更多信息,通常下一个要查找的地方是代码。

在这种情况下,处理resource路由的类为ResourceRegistrar。您可以查看code for the class here

例如,您可以在该类中看到以下用法:

$ ag  "options\['.*?'\]" 
vendor/laravel/framework/src/Illuminate/Routing/ResourceRegistrar.php

75:        if (isset($options['parameters']) && ! isset($this->parameters)) {
76:            $this->parameters = $options['parameters'];
157:        if (isset($options['only'])) {
158:            $methods = array_intersect($methods, (array) $options['only']);
161:        if (isset($options['except'])) {
162:            $methods = array_diff($methods, (array) $options['except']);
366:        if (isset($options['middleware'])) {
367:            $action['middleware'] = $options['middleware'];
388:        if (isset($options['names'])) {
389:            if (is_string($options['names'])) {
390:                $name = $options['names'];
391:            } elseif (isset($options['names'][$method])) {
392:                return $options['names'][$method];
399:        $prefix = isset($options['as']) ? $options['as'].'.' : '';

您还可以看到,这些选项也传递到了资源中的每个单独路线。