0

我的 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');

任何帮助都会很棒,谢谢

4

2 回答 2

2

该错误是因为您试图访问一个变量,即$record->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])}}" 
于 2019-02-15T06:45:23.630 回答
0

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');

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

于 2019-02-15T06:35:27.703 回答