由于某种原因,我试图将其重定向到另一个页面,这不起作用。这是我的Vue上的重定向按钮所在的代码。我尝试了两种不同的方法,但均不起作用。
<el-row class="import-btn">
<a :href="'/imports/teachers'">
<el-button type="warning"> Importar
</el-button>
</a>
</el-row>
<el-row class="import-btn">
<el-button type="warning"
@click="redirectStudents()"> Importar
</el-button>
</el-row>
redirectStudents() {
this.$inertia.visit('/imports/students');
},
我有这样的web.php路由
Route::resource('imports/students', 'ImportStudentController');
Route::resource('imports/teachers', 'ImportTeacherController');
在两个控制器中,我目前都只填充了index()
public function index()
{
return Inertia::render('Import/Students');
}
public function index()
{
return Inertia::render('Import/Teachers');
}
在教师和学生的vue文件中,我具有这些页面的基本布局和标题,因此它们不为空。
当我单击<a :href="">
按钮时,我将重定向到链接,但页面完全空白,而当我单击另一个按钮时,它打开时就像里面的一个窗口一样空白。
解决此问题的正确方法是什么?
答案 0 :(得分:0)
在InertiaJS中创建链接非常简单。它具有一个自定义标记,以表示它属于框架的范围。
<inertia-link href="/">Home</inertia-link>
内部有一个<a>
标签,这也意味着所有传递的属性都将发送到该基础<a>
标签。
如果您真正要寻找的只是一个简单的链接单击操作-而不是重定向本身-那么使用上述代码就可以了。
如果您对重定向感兴趣,例如在更新用户或类似操作之后,则只需像在其他Laravel应用程序中那样使用Redirect
门面就足够了。
class UsersController extends Controller
{
public function store()
{
User::create(
Request::validate([
'name' => ['required', 'max:50'],
'email' => ['required', 'max:50', 'email'],
])
);
return Redirect::route('users');
}
}
如果您已经安装了InertiaJS laravel适配器包,那么此重定向将返回303状态码,该状态码与302状态码相同,只是将请求更改为GET请求。
希望这会有所帮助!