我使用vue.js和Laravel 5.4。
我尝试在数据库中保存一个项目。为此,我有:
vue.js文件:
<label>Name:</label>
<input type="text" class="form-control" v-model="product.name">
<button @click="create">Create</button>
脚本:
data(){
return{
product: {
name: ''
}
}
},
methods: {
create() {
this.$http.post('api/products', this.product)
.then(response => {
this.$router.push('/feed');
})
}
}
}
在我定义的main.js文件中:
Vue.http.options.root = 'http://localhost/';
在laravel项目的api.php中,我有:
Route::group(['middleware' => 'auth:api'], function (){
Route::resource('products', 'ProductsController');
});
的ProductsController:
public function index()
{
return Product::orderBy('created_at', 'desc')->get();
}
public function store(Request $request)
{
$product = Product::create($request->all());
return $product;
}
我的路线列表:
| GET|HEAD | api/products | products.index
| App\Http\Controllers\ProductsController@index
| api,auth:api |
| POST | api/products| products.store
| App\Http\Controllers\ProductsController@store
| api,auth:api |
当我点击创建按钮时,我收到以下错误:
POST http://localhost/api/products 500(内部服务器错误)
未捕获(承诺)响应{url:“http://localhost/api/products”,ok:false,状态:500,statusText:“内部服务器错误”,标题:标题...}
当我在create方法中编写时:this。$ http.get('api / products') 一切似乎都有效。 有任何想法吗?