抱歉,尝试在Laravel中编辑空值时找不到所需的页面

时间:2018-09-18 13:25:59

标签: laravel laravel-5

我已经创建了一个编辑功能来编辑laravel.a中数据库中的现有值。

每当我单击其中具有空值(没有提供数据的默认值在sql中设置为null)的编辑功能(按钮)时,就会显示错误:

对不起,找不到您要查找的页面。

但是当我单击具有值的编辑时,该功能将正常工作。

在这种情况下应该怎么做?

控制器:

public function showuserseditform($id)
{
    $wallet = Wallet::find($id);

    return view('Admin.Wallets.editUserWallet')->with('wallet', $wallet);

}

编辑页面功能:

<td> 
    <a href="{{ route('userwallet.edit',['id' => $wallet['walletUsers']['walletid'] ]) }}" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill" title="Edit ">
        <i class="la la-edit"></i>
    </a>
    <a href="{{ route('userwallet.destroy', ['id' => $wallet['walletUsers']['walletid'] ]) }}" class="m-portlet__nav-link btn m-btn m-btn--hover-accent m-btn--icon m-btn--icon-only m-btn--pill" title="Delete ">
        <i class="la la-trash"></i>
    </a>
</td>

编辑表单:

<form class="form" method="post" action="{{ route('userwallet.update',['id' => $wallet->walletid ]) }}">
    {{ csrf_field() }}
    <div class="form-body">
        <h4 class="form-section"><i class="la la-eye"></i> Wallet Details</h4>
        <div class="container">
            <div class="col-md-8 offset-2">
                <div class="form-group">
                    <label for="name">Name</label>
                    <input type="text" id="name" value="{{ $wallet->walletUserId->name  }}" class="form-control border-primary" placeholder="Name" name="name">
                </div>
            </div>
            <div class="col-md-8 offset-2">
                <div class="form-group">
                    <label for="email">Wallet Balance</label>
                    <input type="text" id="text" value="{{ $wallet->balance }}" class="form-control border-primary" placeholder="Email"
                           name="balance">
                </div>
            </div>
        </div>
    </div>
    <div class="form-actions right">
        <a href="{{ route('user.wallet') }}" class="btn btn-warning mr-1">
            <i class="ft-x"></i> Cancel
        </a>
        <button type="submit" name="submit" class="btn btn-primary">
            <i class="la la-check-square-o"></i> Save
        </button>
    </div>
</form>

编辑路线:

Route::get('/admin/wallet/edit/{id}', [
    'uses' => 'WalletController@showuserseditform', 
    'as' => 'userwallet.edit'
]);

即使字段为空,也请注意编辑字段!

1 个答案:

答案 0 :(得分:0)

尝试

Route::get('/admin/wallet/edit/{id?}', [
  'uses' => 'WalletController@showuserseditform', 
  'as' => 'userwallet.edit'
]);


public function showuserseditform($id=null)
{

    $view_data = [];


    $view_data['wallet'] = $id ? Wallet::find($id) : null;


    return view('Admin.Wallets.editUserWallet', $view_data);

}

另外,可能在模板中您将不得不添加诸如$wallet == null之类的术语,不要让其显示来自模型的数据。