【问题标题】:Undefined view in blade for LaravelLaravel 刀片中的未定义视图
【发布时间】:2019-02-15 06:30:49
【问题描述】:

我的 Laravel 项目的刀片视图中存在未定义变量的问题。

我相信我已经正确定义了一切

这是导致我的问题的刀片视图中的行。

<a href="{{action('RollController@paid', $record->id)}}" title="Paid" class="btn btn-success"><i class="material-icons">done</i></a>

它在抱怨记录变量

这是 RollController 中的公共函数

public function paid($id)
{

    $record = Roll::find($id);

    if ($record!= null)
 {
     $record->status = 'C';
     $record->save();

     return redirect(action('RollController@index'))->with ('success', 'Member Paid');
 }

 return redirect(action('RollController@index'));

}

这是网络路由

Route::get('/roll/paid/{id}', 'RollController@paid')->middleware('auth');

任何帮助都会很棒,谢谢

【问题讨论】:

  • 你必须在刀片中发送 $record 变量的代码在哪里?
  • 这段代码没有返回视图,这意味着它从不使用刀片模板。能否请您粘贴 index 方法的代码以便我们调试?

标签: laravel undefined-variable


【解决方案1】:

错误是因为您试图访问不存在的视图上的变量,即$record-&gt;id,请查看:

return redirect(action('RollController@index'))->with ('success', 'Member Paid');
return redirect(action('RollController@index'));

在这两种情况下,您都没有传递包含其中值的变量。所以试试这个:

return redirect(action('RollController@index'))->with('record', $record);

并将锚标记从:

href="{{action('RollController@paid', $record->id)}}"

href="{{route('paid',['id' => $record->id])}}" 

【讨论】:

    【解决方案2】:

    href 不应包含控制器名称和/或方法。您将路线放在 href 属性中。所以改变

    href="{{action('RollController@paid', $record->id)}}"
    

    进入

    href="{{route('paid',['id' => $record->id])}}" 
    

    同时更改您的 web.php。

    Route::get('/roll/paid/{id}', 'RollController@paid')->middleware('auth')->name('paid');
    

    我所做的是,我通过添加 name('paid') 在 web.php 中为路由添加了一个名称。您可以添加任何您想要的名称。然后我在 href 属性中使用了这个命名路由。

    【讨论】:

      猜你喜欢
      • 2014-03-15
      • 2017-08-24
      • 2017-02-08
      • 2018-07-24
      • 2018-11-26
      • 2017-06-17
      • 1970-01-01
      • 2017-02-08
      • 1970-01-01
      相关资源
      最近更新 更多