Метод контроллера Laravel с моделью в качестве параметра - PullRequest
0 голосов
/ 19 декабря 2018

Я создал модель, используя php artisan make:model Transaction -a, поэтому он также сгенерировал миграцию, фабрику и контроллер ресурсов для модели.Все работает, как и ожидалось, но я понял это в коде контроллера:

/**
 * Display the specified resource.
 *
 * @param  \App\Transaction  $transaction
 * @return \Illuminate\Http\Response
 */
public function show(Transaction $transaction)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  \App\Transaction  $transaction
 * @return \Illuminate\Http\Response
 */
public function edit(Transaction $transaction)
{
    //
}

Похоже, что он ожидает экземпляр модели в методах show() и edit(), что похоже на помощника для возвращения представления,но как я могу интегрировать это в веб-маршрутизацию?


Английский не мой родной язык.

Ответы [ 3 ]

0 голосов
/ 20 декабря 2018

Ошибка 404, о которой я упоминал, вероятно, является ошибкой на маршрутах с utf-8.Когда я перехожу на trasacoes (от «transações»), это работает.Я отправлю вопрос.

0 голосов
/ 20 декабря 2018

если ваш маршрут administração/transações/{transaçõe}, а ваша модель Транзакция , тогда laravel не знает, что с ним делать!

, поэтому, чтобы заставить его работать, есть два способа:

  • Вы должны связать это подробно согласно этой ссылке :

    добавить Route::model('transaçõe', App\Transaction::class); к boot() методу вашего RouteServiceProvider следующим образом:

    public function boot()
    {
        parent::boot();
    
        Route::model('transaçõe', App\Transaction::class);
    }
    
  • ИЛИ Вы меняете маршрут на administração/transações/{transaction}.

0 голосов
/ 19 декабря 2018

Запустить php artisan route:list на консоли.Вы получите все маршруты вашего приложения.Это список Route::resource('admin/blog-category', 'BlogCategoryController'); маршрутов. По списку маршрутов вы получите представление об URI и действии.

|        | POST      | api/admin/blog-category                      | blog-category.store   | App\Http\Controllers\BlogCategoryController@store                      | api          |
|        | GET|HEAD  | api/admin/blog-category                      | blog-category.index   | App\Http\Controllers\BlogCategoryController@index                      | api          |
|        | GET|HEAD  | api/admin/blog-category/create               | blog-category.create  | App\Http\Controllers\BlogCategoryController@create                     | api          |
|        | GET|HEAD  | api/admin/blog-category/{blog_category}      | blog-category.show    | App\Http\Controllers\BlogCategoryController@show                       | api          |
|        | PUT|PATCH | api/admin/blog-category/{blog_category}      | blog-category.update  | App\Http\Controllers\BlogCategoryController@update                     | api          |
|        | DELETE    | api/admin/blog-category/{blog_category}      | blog-category.destroy | App\Http\Controllers\BlogCategoryController@destroy                    | api          |
|        | GET|HEAD  | api/admin/blog-category/{blog_category}/edit | blog-category.edit    | App\Http\Controllers\BlogCategoryController@edit                       | api          |

check BlogCategoryController@show Uri вы получите api/admin/blog-category/{blog_category}.то есть вы должны передать один параметр. В качестве параметра вы должны передать идентификатор категории блога.

Пример: если URL равен api/admin/blog-category/10

public function show(Blog $BlogCategory)
    {
        $blogCategory = $BlogCategory;
    }

В $blogCategory вы получите результаткатегории блога с идентификатором 10.

...