资源控制器中的显示方法返回null

时间:2018-03-25 14:16:13

标签: forms laravel variables controller resources

我在学习laravel时遇到了麻烦,并决定在这里提出我的问题,因为我无法通过Google等找到答案。

我试图通过Id从数据库返回客户端,也许稍后通过名称返回。

这是我的表格:

<<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Klant invoeren</title>
<link rel="stylesheet" href="{{asset('css/app.css')}}">
</head>
<body>

<p><<form action="{{route('client/'.$client->id.'/show/')}}"
      method="get">
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
    <label for="price">Achternaam:</label>
    <input type="text" class="form-control" name="id">
</div>
</div>
<div class="row">
    <div class="col-md-4"></div>
    <div class="form-group col-md-4">
        {{csrf_field()}}
        <button type="submit" class="btn btn-success" style="margin-        
left:38px">Zoek klant</button>
    </div>
</div>
</form></p>
</body>
</html>

哪个重定向到:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Klant invoeren</title>
<link rel="stylesheet" href="{{asset('css/app.css')}}">
</head>
<body>
<div class="container">
    <h2>Voer een klant in</h2><br  />
    <h1>Showing {{ var_dump($client) }}</h1>


    </div>
</body>
</html>`

这是来自Clientcontroller的show方法:

public function show($id)
{
    $client = Client::find($id);
    return view('clients.show', compact('client'));
}

这是我正在使用的路线:

Route::get('client/{id}/show','ClientController@show');

有人可以发现我的错误,因为在过去的几个小时里我不能搞清楚这一点。

编辑:更新了代码并添加了路由,现在得到客户端变量未在

中定义的错误

3 个答案:

答案 0 :(得分:0)

您必须在表单操作中回显客户端ID。因此,请从$ client-&gt; id中删除反转逗号。使用以下代码:

<form action="{{action('ClientController@show', $client->id)}}"             
method="get">

此外,从代码中删除反引号。使用以下代码:

public function show($id)
{
    $client = Client::find($id);
    return view('clients.show', compact('client')); 
}

答案 1 :(得分:0)

在您的路线/ web.php

       Route::get('client/{id}/show','ClientController@show');

以您的形式:

       <form action="{{URL::to('client/'.$client->id.'/show/')}}"             

方法=&#34;获得&#34;&GT;

在您的控制器中:

public function show($id)
{
    $client = Client::find($id);
    return view('clients.show', compact('client')); 
}

答案 2 :(得分:0)

在您的客户端控制器中,请确保使用您引用的模型

假设App \ Client.php如果您指的是用户,请将其更改为App \ User.php

ClientController

use App\Client;

public function show($id)
{
    $client = Client::find($id);
    return view('clients.show', compact('client')); 
}

现在您可以使用$ client获取客户端模型例如$ client-&gt; id

确保在路径中传递{id}参数