在空[LARAVEL]上调用成员函数update()

杰克·斯切维诺(Jake Scervino)

我正在尝试制作允许登录用户编辑其纪念页之一的Laravel应用程序。编辑视图有效,但是一旦保存更改,就会在null错误时引发对成员函数update()调用我是Laravel的新手,所以如果这是一个愚蠢的问题,我深表歉意。

控制器:

public function edit(Memorial $memorial)
{
    $this->authorize('update', $memorial);

    return view('memorials.edit', compact('memorial'));
}

public function update(Memorial $memorial)
{
    $this->authorize('update', $memorial);

    $data = request()->validate([
        'fname' => 'required',
        'lname' => 'required',
        'bio' => '',
    ]);

    auth()->user()->memorial->update($data);

    return redirect("/memorial/{$memorial->id}");
}

视图:

<div class="container pt-5">
<form action="/memorial/{{ $memorial->id }}" enctype="multipart/form-data" method="POST">
    <legend>Edit Memorial</legend>
    @csrf
    @method('PATCH')
    <div class="form-group">
        <div class="form-row">
            <div class="col-6">
                <input id="fname" type="text" class="form-control @error('fname') is-invalid @enderror" name="fname" placeholder="First Name" value="{{ old('fname') ?? $memorial->fname }}" autofocus>

                @error('fname')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                @enderror
            </div>
            <div class="col-6">
                <input id="lname" type="text" class="form-control @error('lname') is-invalid @enderror" name="lname" placeholder="Last Name" value="{{ old('lname') ?? $memorial->lname }}">

                @error('lname')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                @enderror
            </div>
        </div>
    </div>

    <div class="form-group">
        <div class="form-row">
            <div class="col-6">
                <input id="bio" type="text" class="form-control @error('bio') is-invalid @enderror" name="bio" placeholder="Biography" value="{{ old('bio') ?? $memorial->bio }}">

                @error('bio')
                    <span class="invalid-feedback" role="alert">
                        <strong>{{ $message }}</strong>
                    </span>
                @enderror
            </div>
        </div>
    </div>

    <div class="form-group">
        <div class="form-row">
            <div class="col-12">
                <button class="btn btn-primary">Save</button>
            </div>
        </div>
    </div>
</form>

政策:

/**
 * Determine whether the user can update the memorial.
 *
 * @param  \App\User  $user
 * @param  \App\Memorial  $memorial
 * @return mixed
 */
public function update(User $user, Memorial $memorial)
{
    return $user->id == $memorial->user_id;
}
穆罕默德·侯赛尼(Mohammad Hosseini)

您的关系不正确...您在用户模型中没有纪念性关系。所以它返回null

您可以按照以下代码轻松编辑一个纪念馆:

public function update(Memorial $memorial)
{
    $this->authorize('update', $memorial);

    $data = request()->validate([
        'fname' => 'required',
        'lname' => 'required',
        'bio' => '',
    ]);

    $memorial->update($data);

    return redirect("/memorial/{$memorial->id}");
}

因为在编辑$ memorial时需要在授权中检查隐私,所以您需要

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在空Laravel上调用成员函数save()

来自分类Dev

在空Laravel上调用成员函数delete()

来自分类Dev

在空Laravel上调用成员函数save()

来自分类Dev

在空LARAVEL 8上调用成员函数Tournaments()

来自分类Dev

在空OOP上调用成员函数prepare()

来自分类Dev

在空OOP上调用成员函数prepare()

来自分类Dev

Laravel在null上调用成员函数getClientOriginalExtension()

来自分类Dev

在null上调用成员函数getBag()-Laravel

来自分类Dev

Laravel,在 null 上调用成员函数 sync()

来自分类Dev

使用Laravel的Eloquent ORM在Slim中的空错误上调用成员函数connection()

来自分类Dev

在非对象Laravel 4.2上调用成员函数where()

来自分类Dev

Laravel在数组错误上调用成员函数toArray()

来自分类Dev

laravel 5.2 | 上传文件-在null上调用成员函数getClientOriginalName()

来自分类Dev

Laravel-在非对象上调用成员函数paginate()

来自分类Dev

在非对象Laravel上调用成员函数getClientOriginalName()

来自分类Dev

在Laravel中的数组上调用成员函数paginate()

来自分类Dev

致命错误:在null上调用成员函数query()(Laravel 5.2)

来自分类Dev

在Laravel 5中在null上调用成员函数connection()

来自分类Dev

Laravel-错误:在null上调用成员函数fullName()

来自分类Dev

使用laravel 6在int上调用成员函数lastPage()

来自分类Dev

在bool laravel 8上调用成员函数detail()

来自分类Dev

在Laravel中更新时,在null上调用成员函数move()

来自分类Dev

Laravel Union“在int上调用成员函数union()”

来自分类Dev

在非对象Laravel上调用成员函数getClientOriginalName()

来自分类Dev

Laravel 5:[在非对象上调用成员函数getAction()

来自分类Dev

Stripe + Laravel-在null上调用成员函数subscribed()

来自分类Dev

在Laravel中实现搜索:在null上调用成员函数posts()

来自分类Dev

Laravel在非对象上调用成员函数create()

来自分类Dev

致命错误:在null上调用成员函数query()(Laravel 5.2)

Related 相关文章

  1. 1

    在空Laravel上调用成员函数save()

  2. 2

    在空Laravel上调用成员函数delete()

  3. 3

    在空Laravel上调用成员函数save()

  4. 4

    在空LARAVEL 8上调用成员函数Tournaments()

  5. 5

    在空OOP上调用成员函数prepare()

  6. 6

    在空OOP上调用成员函数prepare()

  7. 7

    Laravel在null上调用成员函数getClientOriginalExtension()

  8. 8

    在null上调用成员函数getBag()-Laravel

  9. 9

    Laravel,在 null 上调用成员函数 sync()

  10. 10

    使用Laravel的Eloquent ORM在Slim中的空错误上调用成员函数connection()

  11. 11

    在非对象Laravel 4.2上调用成员函数where()

  12. 12

    Laravel在数组错误上调用成员函数toArray()

  13. 13

    laravel 5.2 | 上传文件-在null上调用成员函数getClientOriginalName()

  14. 14

    Laravel-在非对象上调用成员函数paginate()

  15. 15

    在非对象Laravel上调用成员函数getClientOriginalName()

  16. 16

    在Laravel中的数组上调用成员函数paginate()

  17. 17

    致命错误:在null上调用成员函数query()(Laravel 5.2)

  18. 18

    在Laravel 5中在null上调用成员函数connection()

  19. 19

    Laravel-错误:在null上调用成员函数fullName()

  20. 20

    使用laravel 6在int上调用成员函数lastPage()

  21. 21

    在bool laravel 8上调用成员函数detail()

  22. 22

    在Laravel中更新时,在null上调用成员函数move()

  23. 23

    Laravel Union“在int上调用成员函数union()”

  24. 24

    在非对象Laravel上调用成员函数getClientOriginalName()

  25. 25

    Laravel 5:[在非对象上调用成员函数getAction()

  26. 26

    Stripe + Laravel-在null上调用成员函数subscribed()

  27. 27

    在Laravel中实现搜索:在null上调用成员函数posts()

  28. 28

    Laravel在非对象上调用成员函数create()

  29. 29

    致命错误:在null上调用成员函数query()(Laravel 5.2)

热门标签

归档