我正在开发一个应用程序,该应用程序首先使用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();
}
}
但这会显示所有内容而不是特定行 感谢
答案 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
}