我对laravel完全不熟悉,我现在想要使用laravel 4。
假设我有一个页面A.php,它包含一个表格&提交按钮。在我向B.php提交post请求后,在B.php中我从数据库中查询数据。
我的问题是我想在B.php上显示我的结果,它是说A.php请求的同一页,我如何在routes.php中写。
我的代码: master.blade.php
<!DOCTYPE HTML>
<html>
<head>
<metacharset="UTF-8">
<title>course query</title>
</head>
<body>
<div class="container">
@yield('container')
</div>
<h1 class="ret">The result is:
@yield('ret')
<input id="result" type="text"/>
</h1>
</body>
</html>
a.php只会
@extends('course.master')
@section('container')
<h1>My Courses</h1>
{{Form::open(array('url' => 'csOp'))}}
{{Form::label('course', 'Your course')}}
{{Form::text('course')}}
{{Form::submit('Submit')}}
{{Form::close()}}
@endsection
routes.php文件
Route::get('course', function(){
return View::make('course.B');
});
Route::post('csOp', function(){
// do something
//$inputCourse = Input::get('course');
//$records = Courses::where('name', '=', $inputCourse)->get();
// how do I return
//return View::make('csOp', $records);
});
正如您所看到的,在A.php中,我有一个表单并请求csOp
Form::open(array('url' => 'csOp')
csOp是B.php,在B.php中我从db查询数据,现在我得到了结果, 但是如何将结果放到页面(B.php)本身?这就是说我想把结果放到
<input id="result" type="text"/>
你知道在jquery中很简单,我如何在laravel 4中使用它?
如果返回csOp,absolutlly会出错,它就是一个圆圈。那我怎么解决呢?
非常感谢。
答案 0 :(得分:1)
如果要根据模型内容填充表单,请执行以下操作:使用数据库数据填充表单。
所以在laravel中你可以使用Form Model Binding。为此,请使用Form::model
方法。所以在你的情况下
Route::post('csOp', function(){
// do something
$inputCourse = Input::get('course');
$records = Courses::where('name', '=', $inputCourse)->get();
// how do I return
return View::make('csOp')->with('records',$records);
});
您的csOp.blade.php
@extends('course.master')
@section('container')
<h1>My Courses</h1>
{{Form::model($records,array('url' => 'csOp'))}}
{{Form::label('course', 'Your course')}}
{{Form::text('course')}}
{{Form::close()}}
@endsection
现在,当您生成表单元素(如文本输入)时,与字段名称匹配的模型值将自动设置为字段值。因此,例如,对于名为course的文本输入,Courses模型的course属性将被设置为值。