在 Laravel 5.1 中使用 Blade 访问嵌套 URL

Posted

技术标签:

【中文标题】在 Laravel 5.1 中使用 Blade 访问嵌套 URL【英文标题】:Accessing Nested URL Using Blade in Laravel 5.1 【发布时间】:2016-05-20 11:46:00 【问题描述】:

我正在尝试使用 Laravel 5.1 中的嵌套 url 访问页面,但我已经走到了死胡同。 我想在 url 中间使用参数发出 GET 请求。准确地说,cars/cars/edit。 这是我的代码:

在路由文件中

Route::resource('cars', 'carController');

在汽车控制器文件中

class carController extends Controller


    public function index()

       $cars = Car::all();
       return view('carshome', compact('cars'));
    

    public function edit($id)  
        return 'Welcome:  '.$id.'page';
    

在汽车之家刀片模板文件中

@foreach ($cars as $car)
<tr>
    <td> $car->name </td>
    <td> $car->type </td>
    <td class="text-center">
        <a href = url('/cars',[$car->name])>
           <i class="fi-clipboard-pencil"></i>
        </a>
        <a href = url('/cars',[$car->name])>
           <i class="fi-x-circle"></i>
        </a>
    </td>
</tr>
@endforeach

在汽车模型文件中

class Car extends Model

    protected $fillable = [
        'name', 'type'
    ];

辅助函数url 可以将参数作为url 的一部分。我不确定如何创建自定义 url。如何使用刀片访问 url 资源?

【问题讨论】:

tbh,使用Route::resource('cars', 'carController'); 可以避免使用url(..)。你可以使用route('cars.edit', [$car-&gt;name]) 就这么简单。附言。用documentation on restful resource controller确认。 正如@Tezla 所写,但您仍然可以使用url(),例如url('cars', [$car-&gt;id, 'edit']) 哇,谢谢@Tezla,它有效。我不知道在哪里可以将您的评论标记为正确。 谢谢你,@lamzozo。你的回答同样正确。 【参考方案1】:

这只是为了将问题标记为已回答。作为@Tezla 分享: 在我可以使用的汽车之家刀片模板文件中:

route('cars.edit', [$car->name])

@lamzozo建议在汽车之家刀片模板文件中使用另一种工作方法:

url('cars', [$car->name, 'edit'])

【讨论】:

以上是关于在 Laravel 5.1 中使用 Blade 访问嵌套 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 5.1 中从 Blade 调用控制器动作?

Laravel系列5.1Blade模板开发

Laravel 5.1 Ajax 从 Blade View 获取 html

Laravel 5.1 Blade - 循环数组直到其内部数组结束

如何将 Laravel Blade 中的第一个字母大写

Laravel 5.1 - 表单中的 Foreach 数据(刀片)