laravel - 如何从控制器显示数据到刀片视图以及如何从远程 api 进行路由?拉拉维尔
问题描述
欢迎控制器
class WelcomeController extends Controller
{
public function ajaxRequestPost(Request $request){
$request->session()->put('data', $request->all());
return redirect('dashboard');
}
public function readSession(Request $request){
$email = $request->session()->get('data');
return $email;
}
}
路线 (Web.php)
return view('welcome');
});
Route::post('/', [App\Http\Controllers\WelcomeController::class, 'ajaxRequestPost'])->name('ajaxRequest.post');
Route::get('/dashboard/read', [App\Http\Controllers\WelcomeController::class]);
Route::post('/dashboard/read', [App\Http\Controllers\WelcomeController::class, 'readSession']);
Route::get('/dashboard', function () {
$email = session()->has('data');
if(!session()->has('data')){
return redirect('/');
}
return view('dashboard', ['name'=> $email]);
});
Route::get('/logout', function () {
session()->forget('data');
return redirect('/');
});
Welcome.blade用于从远程 API 弹出登录
<div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
<!-- insert at the bottom part of body -->
<script src="provided.js"></script>
<!-- add button to show login window -->
<button id="btnShowLogin" type="button">Login</button>
<form id="login" action="{{ url('/') }}" method="POST">
@csrf
</form>
<script type='application/javascript'>
//create new instance
var api = new API("Givenapikey");
//initialize api
api.init(function(){
//attach click event to the button
$("#btnShowLogin").click(function(){
//show login window
api.login({type:'student'},function(result){
//check result
if(result.error==0){
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrftoken"]').attr('content')
},
url: "{{ route('ajaxRequest.post') }}",
data: { username: result.details.usr_name} ,
type: 'POST',
async: false,
success: function(result){
console.log(result);
document.getElementById('login').submit();
}
});
}
});
});
});
</script>
dahsboard.blade我的目标刀片,用于显示我的用户名和其他详细信息。来自dashboard.blade 的代码片段。
<span class="info">{{ $name }}</span>
我不知道我做得对不对。路由和控制器我认为我做错了,尤其是在路由方面。dashboard.blade 中的输出是1。我不知道为什么。
解决方案
推荐阅读
- ruby-on-rails - 无法使用 rails 更新编辑表单中的字段
- php - DataTables关于调整大小的响应问题
- python - 使用 python cv2 捕获外部 USB 网络摄像头的视频(在 Windows 上)
- racket - 获取列表列表的第二个元素作为列表列表
- javascript - AJAX 页面重定向正确。但是由于重定向传递的数据要刷新
- python-3.x - 3d 数组的 Numpy 乘法
- python - 使用每个元素 x 次将 python 数组映射到 x 倍长的数组
- nativescript - 在 Android 中发布构建问题 - Nativescript+ Angular
- android - 使用不同的资产构建多个应用程序,但使用相同的代码
- json - 在go中编码json标签