Laravel 5.5 使用参数从刀片视图调用 Controller 函数

新手上路,请多包涵

我有一个产品滑块,我试图找到每种产品的最低价格。

所以我首先尝试从控制器成功调用函数并传递产品的 id 并将其打印出来。

刀片.php

  <span class="text-bold">
   @php
    use App\Http\Controllers\ServiceProvider;
    echo ServiceProvider::getLowestPrice($product_cat->id);
   @endphp
 </span>

路线

Route::post('/getLowestPrice/{id}', 'ServiceProvider@getLowestPrice');

控制器

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ServiceProvider extends Controller
{
    public static function getLowestPrice($id) {
        return $id;
    }
}

我得到一个错误

Parse error: syntax error, unexpected 'use' (T_USE)

知道为什么 use 在这里不起作用吗?

原文由 Konstantinos Natsios 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 328
2 个回答

你不能在方法中使用 use 关键字

你可以像这样写完整的类路径

 <span class="text-bold">
   @php
    echo App\Http\Controllers\ServiceProvider::getLowestPrice($product_cat->id);
   @endphp
 </span>

原文由 Ali Faris 发布,翻译遵循 CC BY-SA 3.0 许可协议

@Ali 显然是正确的,我建议你接受他的回答。

不过,我想补充一点,还有一个服务注入指令,它正是为此目的而构建的,使用起来更简洁。

 @inject('provider', 'App\Http\Controllers\ServiceProvider')

<span class="text-bold">
    {{ $provider::getLowestPrice($product_cat->id) }}
</span>

文档: https ://laravel.com/docs/5.5/blade#service-injection

原文由 Joel Hinz 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏