Laravel 形式的动作指向哪里
Where is the action is pointing to in Laravel form
PS:我是 Laravel 的新手。并关注 this tutorial to create sample project
一切正常。
但是我无法弄清楚数据是如何插入数据库的。
这是表单代码
<form method="post" action="{{url('products')}}">
{{csrf_field()}}
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<label for="name">Name:</label>
<input type="text" class="form-control" name="name" >
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<label for="price">Price:</label>
<input type="text" class="form-control" name="price">
</div>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<button type="submit" class="btn btn-success" style="margin-left:38px">Add Product</button>
</div>
</div>
</form>
在 onsubmit 操作中,它调用 "{{url('products')}}" 。
这是什么意思?有人可以帮忙吗?
如果您需要任何其他代码,请告诉我。
web.php
<?php
Route::resource('products','ProductController');
Route::get('/', function () {
return view('welcome');
});
ProductController.php
<?php
namespace App\Http\Controllers;
use App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$products = Product::all()->toArray();
return view('products.index', compact('products'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('products.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$product = $this->validate(request(), [
'name' => 'required',
'price' => 'required|numeric'
]);
Product::create($product);
return back()->with('success', 'Product has been added');;
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
}
这似乎是一个名为 'product' 的 Route::ressource 并重定向到 ProductController。
{{url('/products')}}
意味着 url()
函数将 return base url 并且在该方法中添加的任何内容都将附加到 base ur;
例如我的网站 url 是 https://whosebug.com/
然后上面的方法将 return
https://whosebug.com/products
在你的路线中你必须定义
Route::resource('products','ProductController');
Laravel 路由将指向您的控制器和方法,并且在方法中您有一个逻辑可以插入数据库
为了更好的理解
url()
url 函数生成给定路径的完全限定 URL:
参考:
https://laravel.com/docs/5.5/helpers#method-url
另外想了解更多路线资源可以参考
https://laravel.com/docs/5.5/controllers#resource-controllers
您要的是 Generating Urls 这意味着它将您的应用程序基础 url 与字符串参数中的其他 url 一起使用。因此,url('products')
与 http://yourwebsite.com/products
一样,都是表单上的操作,即表单将提交到的位置。
另一个对应的是 Urls for named routes 我会在这里添加一个标题,以防文档 link 在任何时候中断:
你看。这意味着在你的一条路线中有你用来生成 url.
的名称
由于其中一些辅助函数对 您 来说是新的(假设您正在按照教程学习),我的建议是打开 Laravel's documentation 看看效果如何一个人。
PS:我是 Laravel 的新手。并关注 this tutorial to create sample project
一切正常。 但是我无法弄清楚数据是如何插入数据库的。
这是表单代码
<form method="post" action="{{url('products')}}">
{{csrf_field()}}
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<label for="name">Name:</label>
<input type="text" class="form-control" name="name" >
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<label for="price">Price:</label>
<input type="text" class="form-control" name="price">
</div>
</div>
</div>
<div class="row">
<div class="col-md-4"></div>
<div class="form-group col-md-4">
<button type="submit" class="btn btn-success" style="margin-left:38px">Add Product</button>
</div>
</div>
</form>
在 onsubmit 操作中,它调用 "{{url('products')}}" 。 这是什么意思?有人可以帮忙吗?
如果您需要任何其他代码,请告诉我。
web.php
<?php
Route::resource('products','ProductController');
Route::get('/', function () {
return view('welcome');
});
ProductController.php
<?php
namespace App\Http\Controllers;
use App\Product;
use Illuminate\Http\Request;
class ProductController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$products = Product::all()->toArray();
return view('products.index', compact('products'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
return view('products.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
$product = $this->validate(request(), [
'name' => 'required',
'price' => 'required|numeric'
]);
Product::create($product);
return back()->with('success', 'Product has been added');;
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
}
这似乎是一个名为 'product' 的 Route::ressource 并重定向到 ProductController。
{{url('/products')}}
意味着 url()
函数将 return base url 并且在该方法中添加的任何内容都将附加到 base ur;
例如我的网站 url 是 https://whosebug.com/
然后上面的方法将 return
https://whosebug.com/products
在你的路线中你必须定义
Route::resource('products','ProductController');
Laravel 路由将指向您的控制器和方法,并且在方法中您有一个逻辑可以插入数据库
为了更好的理解
url()
url 函数生成给定路径的完全限定 URL: 参考: https://laravel.com/docs/5.5/helpers#method-url
另外想了解更多路线资源可以参考
https://laravel.com/docs/5.5/controllers#resource-controllers
您要的是 Generating Urls 这意味着它将您的应用程序基础 url 与字符串参数中的其他 url 一起使用。因此,url('products')
与 http://yourwebsite.com/products
一样,都是表单上的操作,即表单将提交到的位置。
另一个对应的是 Urls for named routes 我会在这里添加一个标题,以防文档 link 在任何时候中断:
你看。这意味着在你的一条路线中有你用来生成 url.
的名称由于其中一些辅助函数对 您 来说是新的(假设您正在按照教程学习),我的建议是打开 Laravel's documentation 看看效果如何一个人。