【问题标题】:Laravel PHP, getting clicked link classLaravel PHP,获得点击链接类
【发布时间】:2015-04-08 14:28:01
【问题描述】:

我有一个 html5 表,它是由数据库项目动态创建的,它包含链接,例如删除图标,位于链接标签<a href="xxxx" class="yyyy"></a> 中。我希望能够单击删除图标并知道我要删除哪个项目。我已将链接的类设置为与相关数据库项 ID 相同,但单击链接后,我无法从控制器读取类。在 PHP Laravel 中有没有这样做的方法?或者,也许您可​​以提出一种更好的方法来实现这一目标?这似乎是一种偏离策略。

【问题讨论】:

    标签: php class laravel


    【解决方案1】:

    如果表中的每一行代表数据库中的一行,那么您的链接可能包含数据库中的 id。 例如,用户表。

    Row 1 => Link /users/delete/1 
    Row 2 => Link /users/delete/2 
    Row 3 => Link /users/delete/3
    

    通过这样做,您可以确定调用了哪个。 在你的路由文件中,如果你没有使用Route::resource(),你应该有这样的东西:

    Route::get('users/delete/{id}', 'UsersController@destroy');
    

    在你的destroy 方法中:

    public function destroy($id) 
    {
        // your logic here
    }
    

    【讨论】:

    • 哦,我想我把问题表述得有点大错特错了。我从控制器中的数据库获取数据,然后使用红色数据创建视图,然后从中创建一个表。我找到了一个解决方案,不是最好的,但它会起作用。我只是将表格放在一个表单中,而不是链接和图像,我使用带有 ID 值的单选按钮。然后我将使用 Input::get 从选中的单选按钮中读取值 :)
    【解决方案2】:

    将您的链接格式化为: 例如,如果您使用 foreach 列出所有项目:

    @foreach( $items as $item )
    <a href="{{URL::to('/item/delete/'.$item->id}}">{{$item->name}}</a>
    @endforeach
    

    内部routes.php

    Route::get('item/delete/{id}', 'ItemsController@deleteItem');
    

    ItemsController.php里面定义如下函数

    public function deleteItem($id) {
      $item = Item::get($id);
      if( !$item ) App::abort(404);
    
      $item->delete();
      return Redirect::to('/');
    }
    

    我假设你在 Item.php 中有你的模型

    class Item extends Eloquent {
      protected $table = 'items';
    }
    

    你的 items 表有 id 和 name 列

    【讨论】:

    • 您好,感谢您的建议,我会使用它。但是我遇到了路由文件的问题。它在浏览器的链接部分(item/delete/correctId)中正确获取它,但会引发错误:NotFoundHttpException in RouteCollection.php line 145: 我相信,在路由文件中,它没有按预期获得 {id}
    • 编辑您的问题以包含整个routes.php 或至少包含导致问题的部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多