我是Laravel的新手,有一些我不太了解的概念。我真的需要你的帮助,因为我已经阅读了很多页面,教程和stackoverflow解决方案,我没有得到我需要的结果。 我在数据库的索引页面上显示了“患者”列表。 这是代码:
@if($data)
<table class="table">
<thead>
<tr>
<td>Nombre de Paciente</td>
<td>Cedula</td>
<td>Fecha</td>
<td>Telefono</td>
<td>Email</td>
<td>Direccion</td>
<td>Fecha de Creación</td>
<td></td>
</tr>
</thead>
<tbody>
@foreach($data as $row)
<tr>
<td>
<a href="{{url('/care/$row->id')}}"> {{ $row->paciente }}</a></td>
<!--<td>{{ $row->paciente }}</td>-->
<td>{{ $row->cedula }}</td>
<td>{{ $row->fecha_nacimiento }}</td>
<td>{{ $row->telefono }}</td>
<td>{{ $row->email }}</td>
<td>{{ $row->direccion }}</td>
<td>{{ $row->created_at }}</td>
<td>
</td>
</tr>
</tbody>
@endforeach
</table>
@endif
我想做什么,正如您所看到的,“患者”名称是一个链接,它引用(在这种情况下)一个表单。 我想从中得到两件事。 一:我想得到我点击的病人的身份和“病人”的姓名,并将其发送到表格页面。 TWO:在表单页面上,我想在表单顶部显示“患者”名称,并隐藏“patient_id”以将其保存在表单表格中(此patient_id将是一个预备键)
这是我目前的组成部分:
ROUTE:
Route::get('/care/{id}', [
'as' => 'create',
'uses' => 'CareController@create' ]);
CONTROLLER
public function create($id)
{
//
return view ($this->path.'.care',['id'=>$id]);
}
查看:
<div class="form-group">
<label for="exampleInputEmail">Paciente </label>
<input type="hidden" name="id" value="{{$id}}">
</div>
但每当我加载页面时,它会显示一个空白页面,在网址上我会看到以下内容:
http://hospital.dev/care/ $行级别&GT;编号
我真的很感谢你对此的帮助。
更新: 谢谢。 它现在发送id。但是在尝试显示表单页面时,它仍然会发送空白页面,并且网址如下: “http://hospital.dev/care/1”
我不知道控制器上是否有东西:
控制器: 公共功能创建($ id) { //
return view ($this->path.'.care',['id'=>$id ]);
}
我应该如何将id值no传递给url但是传递给视图?
答案 0 :(得分:0)
网址为http://hospital.dev/care/$row->id
的原因是因为您使用单引号,因此它不会获取变量的值。
在列表中替换:
{{url('/care/$row->id')}}
附:
{{url('/care/'+$row->id)}}
答案 1 :(得分:0)
此处您将变量$row->id
作为字符串<a href="{{url('/care/$row->id')}}">
回显,您需要打印该值。
既然您已经获得了名为的路线,我建议您使用route()
帮助器重写它:
<a href="{{ route('create', ['id' => $row->id]) }}">
在这里,我调用route()
帮助程序,将路由名称create
作为第一个参数传递,将路由期望的{id}
作为第二个参数传递。
另一种方法是通过将变量移出''
并将其附加到网址来纠正您的方法:
<a href="{{url('/care/' . $row->id)}}">
句点.
将字符串附加到php中的另一个字符串,而不是+
答案 2 :(得分:0)
你可以简单地连接href:
<a href='/care/{{$row-id}}'></a>
一旦你将id传递给你的路线。然后,您可以处理路径定义并将其传递给其他控制器。
例如创建动态链接的视图:
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">Endpoint</div>
</div>
<table class="table table-bordered" id="endpoint-table">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>ip</th>
<th>mac</th>
<th>proxy</th>
<th>model</th>
</tr>
</thead>
<tbody id="endpoint-table-body">
@foreach($endpoints as $endpoint)
<tr><td><a href="/endpoint/{{$endpoint->id}}">{{$endpoint->id}}</a></td><td>{{$endpoint->name}}</td><td>{{$endpoint->ip}}</td><td>{{$endpoint->mac}}</td><td><a href="/proxy/{{$endpoint->proxy}}">{{$endpoint->proxy}}</a></td><td><a href="/model/{{$endpoint->model}}">{{$endpoint->model}}</a></td></tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endsection
然后在你的routes / web.php中:
Route::get('/endpoint/{id}', 'EndpointController@show');
然后它被传递给controller @ function show,你可以在那里做一些逻辑:
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$endpoint = Endpoint::getObjectById($id);
$e = new \stdClass();
$e->id = $endpoint->id;
$e->name = $endpoint->name;
$e->ip = $endpoint->ipaddress;
$e->mac = $endpoint->macaddress;
$e->model = $endpoint->model_id;
$e->proxy = $endpoint->proxy_id;
$endpoint = $e;
$endpoints = array();
$endpoints[] = $endpoint;
return view('endpoints', ['endpoints' => $endpoints]);
}
当您返回视图时您可以传递从控制器上定义的函数传递的数据。在这个例子中,函数是EndpointController上的show()。
答案 3 :(得分:0)
您使用的链接就像ID&#39;)}}&#34;&gt; 所以在这里你将id打印成一个字符串。但你需要像
一样使用它ID)}}&#34;&GT;
OR
ID}}&#34;&GT;