我已经编写了用于在laravel中创建角色的代码我在尝试创建新角色时使用spatie包然后它给出了像 Spatie \ Permission \ Exceptions \ RoleDoesNotExist
我知道它的生成因为角色不存在,我不知道如何处理laravel中的异常。
还有什么方法我可以先检查角色是否存在然后添加角色? 以下是我的代码
import java.util.Scanner;
public class A {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("Please call the coin toss (h or t): ");
String call = input.nextLine();
String heads = "h";
String tails = "t";
if(call==null || call.length() > 1){
break;
}
System.out.println("Tossing...");
int random=(int)(Math.random()*2);
if(random<1){ //assume that, if random variable is smaller than 1 then it is head. If bigger than 1 and smaller than 2, then tails.
if(heads.equals(call)){
System.out.println("The coin came up heads. You win!");
}
else{
System.out.println("Sorry, incorrect.");
}
}else{
if(tails.equals(call)){
System.out.println("The coin came up tails. You win!");
}
else{
System.out.println("Sorry, incorrect.");
}
}
}
}
}
答案 0 :(得分:1)
尝试使用laravel的findOrNew。它将尝试在与给定属性匹配的数据库中查找记录。但是,如果未找到模型,则将返回新的模型实例。
$role = Role::firstOrNew(array('name' => Input::get('role_name')));
$role->name = Input::get('role_name');
$role->save();
答案 1 :(得分:0)
你应该在当前文件中加载带命名空间的类。
f.e
Use App\Lib\Role;
答案 2 :(得分:0)
我检查过给定的角色存在于数据库中,如
$s=Role::where('name', $role_name)->count();
if($s==1)
{
echo "Role Already Exists";
}
else{
}
感谢您的帮助
答案 3 :(得分:0)
您可以通过调用exists
方法检查模型是否存在:
if (Model::where('attribute', $value)->exists()) {
// do something
}