【问题标题】:When I post a reply with a form i get "Sorry, the page you are looking for could not be found."当我使用表单发布回复时,我收到“抱歉,找不到您要查找的页面”。
【发布时间】:2018-05-25 07:43:01
【问题描述】:

我有一个帖子和一个表格要回复。当我提交表单时,网址是“http://forum.dev/threads/POST?_token=FIjEkUuNOyFfx8abaiIMEbep2VO1SXYk2b6hqzfT&body=something

但是页面给了我这个:

我的看法是:

 @if (auth()->check())
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <form action="POST" action="{{ $thread->path() . '/replies' }}">
                    {{ csrf_field() }}

                    <div class="form-group">
                        <textarea name="body" id="body" class="form-control" placeholder="Have something to say?" rows="5"></textarea>
                    </div>

                    <button type="submit" class="btn btn-default">Post</button>
                </form>
            </div>
        </div>
    @endif

我的控制器是:

public function store(Thread $thread)
{
    $thread->addReply([
        'body' => request('body'),
        'user_id' => auth()->id()
    ]);

    return back();
}

我的线程模型是:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Thread extends Model
{
protected $guarded = [];

public function path()
{
    return '/threads/' . $this->id;
}

public function replies()
{
    return $this->hasMany(Reply::class);
}

public function creator()
{
    return $this->belongsTo(User::class, 'user_id');
}

public function addReply($reply)
{
    $this->replies()->create($reply);
}
}

如果我忘记了什么,请告诉我! 任何帮助将不胜感激! 非常感谢!

【问题讨论】:

  • 添加您的路线定义。您使用的是隐式还是显式模型绑定?您是否在模型上设置了正确的路由键名称?您在构建 URL 时传递了 id,但您尝试粘贴的 URL 似乎没有使用 id .. 它也是通过方法 GET 而不是 POST 提交的,它似乎基于您的 URL
  • &lt;form action="POST" action="{{ $thread-&gt;path() . '/replies' }}"&gt; - 你指定了两次action,但实际上是指method。由于 HTML 解析和错误处理规则,浏览器忽略了相同属性的第二次出现。因此,请求被发送到http://forum.dev/threads/POST,并在查询字符串中附加了表单数据,因为方法设置为GET,默认为misssignmethod属性。呃。 :)
  • 是的,谢谢@CBroe 我完全错过了!

标签: php html database laravel


【解决方案1】:

我认为您提出了 GET 请求。您需要发出 POST 请求。所以检查html语法。还要检查覆盖此表单的另一个表单。 我确信我的答案,但使用 post 方法您将无法在 URL 中看到发送的数据。

【讨论】:

    猜你喜欢
    • 2018-04-22
    • 2019-11-01
    • 2020-03-06
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-19
    • 1970-01-01
    相关资源
    最近更新 更多