フォーム フィールドを事前設定するには、create.blade.php のフォーム フィールドに「値」を追加します。
{{ Form::text('title', 'Some default title') }}
他の場所でそのタスクを実行する方法はありますか (モデルまたはコントローラーでしょうか?)。作成ビューと編集ビューで同一のフォーム フィールドのコードが必要です。ありがとう!
フォーム フィールドを事前設定するには、create.blade.php のフォーム フィールドに「値」を追加します。
{{ Form::text('title', 'Some default title') }}
他の場所でそのタスクを実行する方法はありますか (モデルまたはコントローラーでしょうか?)。作成ビューと編集ビューで同一のフォーム フィールドのコードが必要です。ありがとう!
さて、ここまでです... この例では、Laravel のフォーム モデル バインディングを使用しました。(私はユーザーモデル/データベーステーブルで作業しています)。このトピックが明確でない場合は、このhttp://laravel.com/docs/html#form-model-bindingをご覧ください
// Controller
class UsersController extends BaseController
{
...
// Method to show 'create' form & initialize 'blank' user's object
public function create()
{
$user = new User;
return View::make('users.form', compact('user'));
}
// This method should store data sent form form (for new user)
public function store()
{
print_r(Input::all());
}
// Retrieve user's data from DB by given ID & show 'edit' form
public function edit($id)
{
$user = User::find($id);
return View::make('users.form', compact('user'));
}
// Here you should process form data for user that exists already.
// Modify/convert some input data maybe, save it then...
public function update($id)
{
$user = User::find($id);
print_r($user->toArray());
}
...
}
そして、コントローラーが提供するビューファイルがここに来ます。
// The view file - self describing I think
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
@if(!$user->id)
{{ Form::model($user, ['route' => 'admin.users.store']) }}
@else
{{ Form::model($user, ['route' => ['admin.users.update', $user->id], 'method' => 'put']) }}
@endif
{{ Form::text('firstName') }}
{{ Form::text('lastName') }}
{{ Form::submit() }}
{{ Form::close() }}
</body>
</html>
はい、次の例を考えてみましょう。
意見:
{{ Form::text('title', $title) }}
コントローラ:
$title = 'Some default title';
if($article) {
$title = $article->title;
}
return View::make('user.login')->with('title', $title)
次に、次の値と等しくないSome default title
場合は、または $article のタイトルのいずれかを含むテキスト入力があります。$article
false
おそらく簡単です(Laravel 5):
{{ Form::text('title', isset($yourModel) ? null : 'Some default title') }}
つまり、フォームをパーシャルとして使用していると仮定します。フォームのモデルが存在する場合(レコードを編集またはパッチしている場合)、値を入力する必要があります。それ以外の場合は、希望するデフォルトが表示されます。
スキーマ ビルダーを使用している場合 (移行またはその他の場所で):
Schema::create(
'posts', function($table) {
$table->string('title', 30)->default('New post');
}
);