我正在laravel中创建一个命令,在该命令中我将视图正确复制到views文件夹中,但是碰巧我想添加一些路由,并且按以下方式进行操作
file_put_contents(
base_path('routes/web.php'),
file_get_contents(__DIR__.'/stubs/make/routes.stub'),
FILE_APPEND
);
我正确添加了路由,但是每次我使用php artisan make:micommand命令时都会这样做,是否有任何方法可以评估是否已经存在路由而不添加它们?
使用Laravel 5.6。*
答案 0 :(得分:1)
我认为没有内置的方法可以检查此问题。但是我的一个想法是在routes/web.php
中添加一个非常独特的注释(例如,作为存根的一部分),您可以随后对其进行检查。
stubs/make/routes.stub
:
// my.pkg.routes.web
Route::group([], function () {
Route::resource('something');
});
命令:
$routes = file_get_contents(base_path('routes/web.php'));
if(strpos($routes, '\/\/ my.pkg.routes.web') === false) {
file_put_contents(
base_path('routes/web.php'),
file_get_contents(__DIR__.'/stubs/make/routes.stub'),
FILE_APPEND
);
}
您还可以在命令类中使注释成为常量,然后从那里添加注释(可能更有意义)。
答案 1 :(得分:0)
您可以为一条路由分配一个名称,然后在命令执行期间通过Route::has
方法进行检查。
分配名称:
Route::get('test', function () {
dd('Testing route');
})->name('test');
在命令中检查路由:
if (!Route::has('test')) {
<append your routes via stub>
})