【发布时间】:2020-07-19 02:08:44
【问题描述】:
我被困在这里,我不确定最好的行动方案
目前我有一个组成仪表板的刀片和 vue 组件。我有一个为仪表板加载视图的路由,以及另一个获取 ID 详细信息的路由(在事件发生时在仪表板内调用)。
现在完美运行。
问题是我希望能够在外部访问第二条路由(如 site.com/status/12345)并默认加载该 id (12345) 的数据。
现在我点击 site.com/status 并在页面创建时调用fetchEntries 来获取数据,我会根据该数据呈现一个带有链接的表格,因此如果您点击一个链接,它会传递该点击条目的 ID进入 status/{id} 以获取该特定点击条目的详细信息。然后它将返回的数据加载到详细信息屏幕中。
我在这里要做的就是做到这一点,这样如果我调用 status/12345 它就会到达该路由,并且我的控制器 details 方法。我知道我也可以在页面创建时调用该函数,但我想知道如何处理 site.com/status 和 site.com/status/12345 之间的区别。
我应该在这里做什么,我该怎么做?
这是我现在拥有的:
controller.php
public function index() {
return view('Entry.status');
}
public function details($id) {
return json_encode(Entry::getDetails($id));
}
web.php(路由)
Route::get('/Entry/status', 'Entry\EntryController@index')
->name('Entry.status');
Route::get('/Entry/status/{id}', 'Entry\EntryController@details')
->name('Entry.status');
status.vue
created() {
this.fetchEntries();
},
fetchEntries() {
axios.get('/Entry/dashboard')
.then(response => {
this.events = response.data;
})
.catch(function(error) {
console.log(error)
})
.finally(function() {
})
},
getDetails(event) {
this.detailId = event.taskt_id;
axios.get('/Entry/status/' + this.detailId)
.then(response => {
...
}
【问题讨论】:
-
site.com/status返回刀片视图,site.com/status/12345返回json。你到底想要什么?我觉得你的问题不是很清楚。 -
@AndySong 是的,它现在返回 json,因为我从仪表板调用它并期待返回结果。我可以让它返回带有 json_encoded ID 的视图,我可以通过刀片将其作为 .vue 文件的道具传递,但我不确定如何根据是否存在来处理仪表板的 createdAt 部分
/id在 site.com/status 之后 -
对不起,我还是不确定,你想实现什么,我可以理解你当前的代码。你能告诉我你的最终目标是什么吗?
-
@AndySong 假设我在仪表板上使用新路由进行内部调用,但我需要 site.com/status/12345 返回相同的 Entry.status 视图,但我需要调用这次在 onCreate 获取详细信息。我想我的主要问题是:如果有 /12345 参数,我是否只能在创建时调用我的 getDetails?
-
所以你这么说,你如何处理
site.com/status/{id}的刀片视图?
标签: php vue.js laravel-5.8