Самое простое решение - создать промежуточное программное обеспечение и вызвать его позже в конструкторе.
php artisan make:middleware FoobarMiddleware
Я рекомендую поместить псевдоним в Kernel.php
protected $routeMiddleware = [
...
'foobar' => \App\Http\Middleware\FoobarMiddleware::class,
]
Конструктор:
public function __construct()
{
$this->middleware('auth');
$this->middleware('foobar');
}
Я рекомендую изменить фокус того, как вы создаете все
Если вы просто передаете хэш всех параметров человека (а не вложенный хеш с "человеком") в качестве ключа), тогда вы просто сможете сделать @person = Person.new (params)
.
Поочередно,
Person.new(params.reject{|k,v| k != "firstname" || k != "lastname"})
сделал бы в Вашем Ruby....
Person.new({:firstname => params[:firstname], :lastname => params[:lastname]})
- это на самом деле работает
Вот больше futureproof решения:
Person.new(params.reject{|k,v| not Person.column_names.include?(k) })
Одна из идей, позволяющих разрешить простой ввод JSON, например {"firstname": "Joe", "lastname": "Bloggs"}, и вложенный тип, который вы получаете с HTML-формой, будет:
@person = Person.new(params[:person] || params)
respond_to do |format|
..
end