首页 文章

Laravel 5.2以编辑形式显示保存的日期

提问于
浏览
1

这可能是一个非常非常简单的问题,但它让我难过......

所以,我在数据库中保存了一篇带有表单的文章,其中包括一个用于保存已发布日期的字段 . 在此字段中输入的数据与其余数据一起成功保存在数据库中 .

我已成功将所有已保存的数据拉回到编辑表单中,除了published_date字段 .

我尝试使用与其他字段相同的格式,例如 Headers ,如下所示

{!! Form::text('title', null) !!}
{!! Form::input('date', 'first_published', null) !!}

这会将dd / mm / yy放在输入框中,而不是保存的日期 . 如果未更改此值,则日期将作为今天的日期保存在数据库中 .

我也尝试删除'date'属性

{!! Form::input('first_published', null ) !!}

这会导致一个完全空的框(并且没有日期选择器),如果没有保存,它不会覆盖表单中的值 . 更好,但仍然不是我想要的,因为我想显示保存的日期,如果需要可以更改 .

我也尝试在这个领域以各种方式回应$ article-> published_date,但最终只得到与上面相同的结果 . 虽然使用{!!我可以在其他地方回显这些数据没问题$ article-> first_published !!}

表单引用模型如下:

{!! Form::model($article, ['method' => 'PATCH', 'url' => 'articles'.'/'. $article->id]) !!}

并且相关的控制器功能是

//page containing form to edit article, pulls in existing data
public function edit($id)
{
    $article = article::findOrFail($id);

    return view('articles.edit', compact('article'));
}

//responsible for updating the article record
public function update($id, Request $request)
{
    $article = article::findOrFail($id);
    $article->update($request->all());

    return redirect('articles');
}

该字段被设置为迁移中的时间戳,并且在我的模型中

protected $dates = [
    'first_published'
];

因此,如果任何人都可以了解如何将保存的数据值放入表单字段中,就像在其他字段中一样,我们将非常感激! :)如果我错过了一些令人眼花缭乱的明显问题,我对laravel很新,所以道歉......

3 回答

  • 1

    我所做的是将 Form::input('date', 'published_at', ... 行相关的段替换为以下代码部分(指的是Laracast Partials和Forms Reuse教程):

    <!-- Published_at Form Text Input -->
    <div class="form-group">
        {!! Form::label('published_at', 'Publish On:') !!}
        {!! Form::date('published_at', (isset($article) && $article->published_at ? $article->published_at : date('Y-m-d')), ['class' => 'form-control']) !!}
    </div>
    

    在上面替换的代码部分 (isset($article) && $article->published_at ? $article->published_at : date('Y-m-d')) 将检查表单是否已给出 $article 对象,因此使用其现有的 published_at 日期或其他明智的创建日期与当前时间并使用它 .

    希望这对那里的人有所帮助 .

  • 0

    在其他任何人都有类似的问题 - 我现在找到了解决方案,这简直令人尴尬!

    我更改了日期字段如下:

    {!! Form::date('first_published', $article->first_published, ['class' => 'nameofclasshere']) !!}
    

    因此,字段的默认值是从我的数据库中提取的值(我可以在问题中详述的页面中的其他位置访问该值) . 当我提交表单时,日期仍然是数据库中的值,除非我更改表单值,在这种情况下它会更新 .

    不知道这是否是正确的或推荐的方式(并且仍然不同于我如何完成其他字段),但似乎可以做到这一点!

  • 0

    显然这个问题已经关闭,但也许它可以帮助某人 . 我正在使用表单进行编辑和创建,因此我执行了以下操作:

    <div class="form-group">
     <label class="control-label" for="date_">Proyect Date </label>
    <input class="form-control" id="datepicker" name="date" placeholder="DD/MM/AA" value="
        @if (isset($proyect->date))
            {!!date('d-m-Y', strtotime($proyect->date))!!}
        @endif"  type="text">
    

相关问题