【问题标题】:Sorry, the page you are looking for could not be found while trying to edit null value in laravel抱歉,在 laravel 中尝试编辑 null 值时找不到您要查找的页面
【发布时间】:2018-09-18 13:25:58
【问题描述】:

我创建了一个编辑函数来编辑 laravel.a 中数据库中的现有值

当我点击编辑函数(按钮)时,它的值为空(当没有提供数据时,默认值在 sql 中设置为空),它会显示一个错误:

抱歉,找不到您要查找的页面。

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

这种情况应该怎么办?

控制器:

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

即使字段为空,请指导编辑字段!

【问题讨论】:

  • 您是否尝试使用虚拟主机访问?如果您可能是关于 DocumentRoot.
  • 数据库位于 aws,但我在本地访问数据库。 !
  • 更改路由到Route::get('/admin/wallet/edit/{id}','WalletController@showuserseditform')-&gt;name('userwallet.edit');
  • 不,试过了!得到同样的错误!

标签: laravel laravel-5


【解决方案1】:

试试

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 之类的术语,不要让它显示来自模型的数据。

【讨论】:

  • 我认为 @Arvindh 希望能够看到视图,无论 $id 是否已通过。这意味着它们将被重定向并显示错误消息。
  • 你需要做的就是给它添加一个问号并相应地修改函数Route::get('/admin/wallet/edit/{id?}', [ 'uses' =&gt; 'WalletController@showuserseditform', 'as' =&gt; 'userwallet.edit' ]);
  • 添加 ? 意味着路由上的 url 参数是可选的。但是,在showusereditform() 方法中,如果walletid 未通过,则第一次检查会将用户返回到原始页面。问题中要问的是如何返回editUserWalletview,无论id是否通过。
  • 我写过你必须修改这个条件......例如。 if(!$id){ $wallet = null; }else{ $wallet = Wallet::find($id);}但是模板也可能有问题,因为可以引用模型,这样的话模型就会为空。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
  • 2016-11-15
  • 2017-09-27
  • 2018-07-31
相关资源
最近更新 更多