处理laravel中的异常

时间:2018-03-09 06:18:20

标签: php laravel exception

我已经编写了用于在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.");
            }
        }

    }
  }
}

4 个答案:

答案 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 
}