【问题标题】:Populate form with Auth::user()使用 Auth::user() 填充表单
【发布时间】:2015-06-09 19:20:45
【问题描述】:

我正在尝试使用我的登录用户填充表单,以便我可以编辑一些个人资料信息。

我目前有此代码(仅尝试先显示电子邮件,稍后将在此工作后填充表单):

我制作了一个editprofile.blade.php模板:

@extends('masterpage')

@section('content')

<h1> Edit Profile </h1>


{{ Form::model($user) }}

    <div class="form-group">
        {{ Form::label('email', 'E-mail') }}
        {{ Form::Text('email', null, ['class' => 'form-control']) }}
    </div>
{{ Form::close() }}

@stop

在 myProfileController.php 我有:

<?php namespace App\Http\Controllers;

use Auth; 
use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Html\FormFacade;
use Illuminate\Html\HtmlFacade;

class ProfileController extends Controller {

    public function show() {
        $user = Auth::user();

        return view('pages.editprofile')->withUser($user);
    }

}

在我的路线中我添加了:

Route::get('/profile/edit', 'ProfileController@show');

但是当我尝试加载页面时,我得到了这个:

我有两个问题:

1:为什么没有显示数据的表单?如您所见,电子邮件正在加载到表单中,但它显示为文本。

2.一旦数据被加载到一个成功的表单中并且用户已经编辑了一些数据,我将如何使用更新功能来保存编辑的数据?

【问题讨论】:

    标签: php database forms eloquent laravel-5


    【解决方案1】:

    我认为您只是在输出原始数据,因为您可能正在使用双括号 {{ }}。

    我记得当我将站点从 laravel 4 迁移到 laravel 5 时,我遇到了同样的事情。他们改变了刀片输出和回显数据的方式。尝试将双括号 {{ }} 更改为此 {{!! !!}} 或者这个 {{{ }}} 我不记得到底是哪一个了。

    编辑:关于保存,您可以使用控制器,因此当用户发布数据时,它会使用 post 方法转到类似 url 的内容,因此它会调用控制器内部的更新函数。

    对于一些用户应该完全控制他的个人资料的功能,比如编辑、更新、删除、创建,我会使用这个 http://laravel.com/docs/5.0/controllers#restful-resource-controllers 中的示例,看看 restful 控制器

    【讨论】:

    • 是的,{!! !!} 允许 HTML 标签。
    • 是的,谢谢{!! !!} 做到了,我知道这一点,只是没有想到。干杯
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2012-05-11
    • 2014-10-24
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多