我正在开发一个需要多重身份验证的应用程序,我在控制台上使用了creative-tim预设(假设creative-tim使用“用户”名称在控制台中存储用户)一个与User表具有一对一关系的Admin表,并创建了适当的中间件以限制对我的“仅管理员”视图的访问,并使用修补程序来创建Admin并将其链接到测试所有内容。 现在的问题是我想通过注册表单自动创建与用户的管理员关系,唯一的问题是,我正在使用的creative-tim模板没有遵循laravel文档,因此我无法理解而且我不知道如何将“管理员”模型链接到创建的“用户”。
这是数据库/模型的一部分: 用户(id,名称,电子邮件,email_verified_at,密码,rememberToken,时间戳) 管理员(id,user_id,角色,时间戳)
他们使用的方式是(显然是存储),但是他们使用了UserRequest和User Object,我尝试这样做:
$Admin = new Admin();
$Admin->role="Admin";
$Admin->user_id = $model->id;
$Admin->save();
这是我发现的原始功能
public function store(UserRequest $request, User $model)
{
$model->create($request->merge(['password' =>Hash::make($request->get('password'))])->all());
return redirect()->route('user.index')->withStatus(__('User successfully created.'));
}
答案 0 :(得分:0)
我实际上找到了解决该问题的方法(这不是我的首选),所以我正常创建了一个用户并获得了ID,并使用它来创建Admin,并在验证后可以完美地工作
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() => runApp(PostHome());
class PostHome extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("My Test"),
),
body: PostScreen(),
),
);
}
}
class PostScreen extends StatefulWidget {
@override
_PostScreenState createState() => _PostScreenState();
}
class _PostScreenState extends State<PostScreen> {
List<Post> _postList = new List<Post>();
Future<List<Post>> fetchPost() async {
final response =
await http.get('http://alkadhum-col.edu.iq/wp-json/wp/v2/posts/');
if (response.statusCode == 200) {
// If the call to the server was successful, parse the JSON
List<dynamic> values = new List<dynamic>();
values = json.decode(response.body);
if (values.length > 0) {
for (int i = 0; i < values.length; i++) {
if (values[i] != null) {
Map<String, dynamic> map = values[i];
_postList.add(Post.fromJson(map));
print('${map['link']}');
}
}
}
return _postList;
} else {
// If that call was not successful, throw an error.
throw Exception('Failed to load post');
}
}
@override
Widget build(BuildContext context) {
return FutureBuilder<List<Post>>(
future: fetchPost(),
builder: (_, AsyncSnapshot<List<Post>> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
}
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (_, index) {
final post = snapshot.data[index];
return ListTile(
title: Text(post.title),
);
},
);
},
);
}
@override
void initState() {
super.initState();
fetchPost();
}
}
class Post {
final int id;
String title;
String link;
String sourceurl;
Post({this.id, this.title, this.link, this.sourceurl});
factory Post.fromJson(Map<String, dynamic> json) {
return Post(
id: json['id'],
title: json['title']['rendered'].toString(),
link: json['link'].toString(),
);
}
}