我有一个小的crud前端来存储信息。前端控制器称为Vue.component('star-rating', {
template: '#template-star-rating',
data: function data() {
return {
value: null,
temp_value: null,
ratings: [1, 2, 3, 4, 5],
disabled: true
};
},
props: {
'name': String,
'value': null,
'id': String,
'disabled': Boolean,
'required': Boolean
},
methods: {
star_over: function star_over(index) {
console.log(this.disabled);
if (this.disabled == true) {
return;
}
this.temp_value = this.value;
this.value = index;
},
star_out: function star_out() {
if (this.disabled == true) {
return;
}
this.value = this.temp_value;
},
set: function set(value) {
if (this.disabled == true) {
return;
}
this.temp_value = value;
this.value = value;
// On click disable - this works
this.disabled = true;
},
checkCanVote: function() {
console.log('Inside checkCanVote');
console.log(this.disabled);
this.disabled = true;
console.log(this.disabled);
}
},
mounted() {
this.checkCanVote();
}
});
new Vue({
el: '#star-app'
});
。我想从api获得alle shows。
所以我的ShowsController
包含:
routes/web.php
这完美而且工作得非常好。
我的Route::resource('shows', 'ShowsController');
包含:
routes/api.php
路线Route::resource('shows', 'ShowsController', ['only' => ['index']]);
应该以json的形式给我显示。
决定前端和api我将/api/shows
放入ShowsController
Controllers/Api folder
包含:
Controllers/Api/ShowsController
我还将namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Show;
class ShowsController extends Controller
{
public function index(){
return response()
->json(Show::all())->withHeaders([
'Content-Type' => 'text/json',
'Access-Control-Allow-Origin' => '*'
]);
}
}
更改为:
RouteServiceProvider
但命令protected function mapApiRoutes()
{
Route::group([
'middleware' => 'api',
'namespace' => 'Api',
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
给了我一个例外:
[ReflectionException]
类Api \ ShowsController不存在
为什么laravel没有在api目录中找到已定义的ShowsController?
答案 0 :(得分:4)
我不知道您使用的是什么版本的Laravel,但在5.4中,我默认使用此方法:
protected function mapApiRoutes()
{
Route::prefix('api')
->middleware('api')
->namespace($this->namespace)
->group(base_path('routes/api.php'));
}
如果您将namespace($this->namespace)
替换为namespace($this->namespace . '\Api')
,则可能会有效。