在chumper datatable中返回单行

时间:2015-05-18 17:06:42

标签: php laravel

我正在开发一个应用程序,该应用程序首先使用2个数据表,其中包含有关该条目的更多详细信息的链接,但是当我单击它时,我会获得有关每个条目的详细信息,并想知道如何解决这个问题? 我目前所拥有的是:

我的主页表

<?php namespace App\Http\Controllers;

use Datatable;
use View;
use App\Models\EC2Instance;
use App\Models\Tag;

class CRUDController extends Controller{

public function instances(){




  $query = EC2Instance::select('instance_id',


                        'public_dns_name',
                        'key_name',
                        'instance_type',
                        'launch_time',
                        'aws_account_id'


                        )->get();


    $t_name= Tag::select('value'
                        )->get();







return Datatable::collection ($query)









   ->addColumn('instance_id',function($model)
    {
       $link = "<a href = 'http://localhost/awsconfig/public/api/location/" . $model->instance_id ."' >".$model->instance_id."</a>";
return $link;

  })
    ->addColumn('public_dns_name', function($model){
        return  $model->public_dns_name;

    })
     ->addColumn('key_name', function($model){
        return  $model->key_name;

    })

     ->addColumn('instance_type', function($model){
        return  $model->instance_type;

    })
     ->addColumn('launch_time', function($model){
        return date('M j, Y h:i A', strtotime($model->launch_time));
    })

      ->addColumn('aws_account_id', function($model){
        return  $model->aws_account_id;
     })
     ->addColumn('value', function($model){
        return  $model->value;
        })

        ->searchColumns('instance_id',
                        'public_dns_name',
                        'key_name',
                        'instance_type',
                        'launch_time',
                        'aws_account_id'


                        )

        ->orderColumns('instance_id',

                        'instance_type',
                        'public_dns_name',
                        'key_name',
                        'launch_time',
                        'aws_account_id'


                        )
        ->make();




}
}

这在实例id字段中有一个链接,该链接应该显示有关该特定条目的更多详细信息

<?php namespace App\Http\Controllers;
use App\Models\EC2Instance;
use Datatable;
use View;
class InstanceDetailsController extends Controller {

public function instance_details(){







    $query = EC2Instance::select('image_id',


                     'private_dns_name',
                     'kernel_id',
                     'subnet_id',
                     'vpc_id',
                     'private_ip_address' ,
                     'public_ip_address',
                     'architecture',
                     'root_device_type',
                     'root_device_name',
                     'virtualization_type',
                     'source_dest_check'


                        )->get();



    return Datatable::collection ($query)









   ->addColumn('image_id', function($model){
        return  $model->image_id;

  })
    ->addColumn('private_dns_name', function($model){
        return  $model->private_dns_name;

    })
     ->addColumn('kernel_id', function($model){
        return  $model->kernel_id;



    })
     ->addColumn('subnet_id', function($model){
        return  $model->subnet_id;
 })

     ->addColumn('vpc_id', function($model){
        return  $model->vpc_id;

    })
     ->addColumn('private_ip_address', function($model){
        return $model->private_ip_address;
    })

      ->addColumn('public_ip_address', function($model){
        return  $model->public_ip_address;
     })
     ->addColumn('architecture', function($model){
        return  $model->architecture;
        })

        ->addColumn('root_device_type', function($model){
        return  $model->root_device_type;
        })

        ->addColumn('root_device_name', function($model){
        return  $model->root_device_name;
        })

         ->addColumn('virtualization_type', function($model){
        return  $model->virtualization_type;
        })
         ->addColumn('source_dest_check', function($model){
        return  $model->source_dest_check;
        })

        ->searchColumns('image_id',


                     'private_dns_name',
                     'kernel_id',
                     'subnet_id',
                     'vpc_id',
                     'private_ip_address' ,
                     'public_ip_address',
                     'architecture',
                     'root_device_type',
                     'root_device_name',
                     'virtualization_type',
                     'source_dest_check'
                        )

        ->orderColumns('image_id',


                     'private_dns_name',
                     'kernel_id',
                     'subnet_id',
                     'vpc_id',
                     'private_ip_address' ,
                     'public_ip_address',
                     'architecture',
                     'root_device_type',
                     'root_device_name',
                     'virtualization_type',
                     'source_dest_check'


                        )
        ->make();




}
}

但这会显示所有内容而不是特定行 感谢

1 个答案:

答案 0 :(得分:1)

在你的第二个选择中,我错过了一些东西......当你调用instance_details()时,你不会提供instance_id来过滤你的查询。

正如您所说,如果没有这个,您就会重新审核所有实例详细信息。

您必须使用类似

的内容
public function instance_details(instance_id){

    $query = EC2Instance::select(
                 'image_id',
                 'private_dns_name',
                 'kernel_id',
                 'subnet_id',
                 'vpc_id',
                 'private_ip_address' ,
                 'public_ip_address',
                 'architecture',
                 'root_device_type',
                 'root_device_name',
                 'virtualization_type',
                 'source_dest_check'
    )->where('instance_id', '=', $instance_id)->get();

    // More code
}