您好,我是laravel的新手。我不知道如何将选择的值存储在变量中。 这就是我在php中的方法。但是laravel如何? 谢谢您的帮助:)
<?php
session_start();
//Database
$servername = "127.0.0.1";
$username = "root";
$password = "root";
//Connection to Database
$conn = new mysqli($servername, $username, $password);
//Connection Test
if(!$conn) {
echo "Not connected to Server"
}
if(!mysqli_select_db($conn, 'test')){
echo "No connection to Database";
}
//store data in variable
$vorname = $_POST['name'];
$name = $_POST['age'];
?>
<!--Form Select-->
<form action="test.php" method="post">
<select name="name">
<option value="Lisa"></option>
<option value="Laura"></option>
</select>
<select name="age">
<option value="20">20</option>
<option value="21">21</option>
</select>
<button type="submit">Sent</button>
</form>
<?php
$query = "SELECT * FROM test WHERE name = $name AND age = $age";
$profile = $conn->query($query);
?>
我想要一个带有选择的表单,并且所选的选项应该存储在变量中。 然后在数据库中检查。然后显示结果。 我不知道该怎么做。 谢谢:)
答案 0 :(得分:2)
好的,让我们开始吧。我建议您学习laravel文档,以使事情变得更清楚。
首先,您需要在web.php文件中创建路由。
Route::get('/test', 'testController@index')->name('test.index');
Route::post('/values', 'testController@getValues')->name('test.values');
第一个将返回您的视图,第二个将插入数据。挂在那里,我将在下几行中解释所有内容。
现在,您需要一个控制器来处理数据,当然还需要一个视图来预览下拉菜单。
要制作控制器,您可以简单地使用php artisan make:controller testController
命令。
这将创建一个名为 testController 的控制器,就像我们在路由中将其命名一样。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class testController extends Controller
{
public function index()
{
return view('test');
}
}
这是您的控制器在此步骤上的外观。只需返回您的视图模板(例如,我将其命名为test即可)。现在,您实际上需要创建要返回的视图。因此,在views文件中,您将创建一个test.blade.php文件,并将您的html代码进行一些修改。
<form action="{{ action('testController@getValues') }}" method="post" id="postData">
{{ csrf_field() }}
<select name="name">
<option value="Lisa">Lisa</option>
<option value="Laura">Laura</option>
</select>
<select name="age">
<option value="20">20</option>
<option value="21">21</option>
</select>
<button type="submit">Sent</button>
</form>
您会注意到,表单的 action 直接指向将在下一步中创建的控制器函数。用于将数据插入数据库。
csrf_field创建一个令牌。现在,您将认识到它可以帮助您的会话不“超时”,但还可以做更多的事情。进一步了解here!!!
访问表单的方法很简单,这就是laravel的路由使事情变得如此简单的原因。像“ localhost / my_project_folder / test”一样,您应该能够看到自己的视图。
好的,继续前进。现在,您需要将数据从视图发送到控制器,以便将其存储在数据库中。
我们需要一个名为getValues
的控制器中的新功能,就像我们在一开始在web.php文件中将其命名一样。现在,您的控制器应如下所示:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB;
class testController extends Controller
{
public function index()
{
return view('test');
}
public function getValues(Request $request){
$name=$request->get('name');
$age=$request->get('age');
$insertData=DB::table('data')->insert(
['name' => $name, 'age' => $age]
);
}
}
请求方法在laravel中非常有用,因此请进一步研究此方法here!!!
现在是最后一部分。连接数据库。所有连接都在.env文件中进行。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testingdata
DB_USERNAME=root
DB_PASSWORD=root
这是我在本地主机中的私有数据库,因此您可以使用凭据对其进行修改。完成此步骤后,您就可以开始了。
如果您使用了不同的数据库或进行了许多更改等,并且感觉好像您在使用旧设置,请运行php artisan config:cache
命令以使用最新更改来配置缓存。
这是将数据从表单插入数据库的最简单方法。您可以对其进行优化和扩展,所以我的建议是开始阅读laravel文档,如果可能的话,请访问laracast,并且如果您有时间参加laracasts论坛。