Как открыть всплывающее сообщение и сообщить пользователю / вернуть сообщение об ошибке для пользователя в Laravel? - PullRequest
2 голосов
/ 04 ноября 2019

enter image description here Я хочу сказать пользователям, где проблема возникает, чтобы они могли удалить данные, это что-то вроде возврата и сказать им, что на самом деле вызывает проблему удаления данных из базы данных,Может кто-нибудь помочь мне разобраться, как, как?

Моя кодировка функции уничтожения выглядит следующим образом:

 public function destroy($id)
{
    $status = 'success';
    $statusMsg = 'Data Deleted';

    try {
        $category = Category::find($id);
        $category->delete();

    } catch (QueryException  $e) {
        $status = 'success';
        $statusMsg = $e;
        return  back();

    }
    $category = Category::find($id);
    $category->delete();
    return redirect()->route('category.index')->with($status, $statusMsg);

}

Ответы [ 2 ]

0 голосов
/ 04 ноября 2019

Попробуйте сделать такой код в контроллере и блейд-файле и используйте метод findOrFail, чтобы найти Category

try {

    $category = Category::findOrFail($id)->delete();
    $status = 'success';

    return redirect()->route('category.index')->with($status, 'Successfully deleted.');
} catch (\Illuminate\Database\QueryException $ex) {
    $msg = $ex->getMessage();
    if (isset($ex->errorInfo[2])) :
        $msg = $ex->errorInfo[2];
    endif;

    return redirect()->back()->withErrors(['msg', $msg]);

} catch (Exception $ex) {
    $msg = $ex->getMessage();
    if (isset($ex->errorInfo[2])) :
        $msg = $ex->errorInfo[2];
    endif;

    return redirect()->back()->withErrors(['msg', $msg]);


}

В блейд-файле Сообщение об ошибке .

@if($errors->any())
<h4 class="alert alert-error">{{$errors->first()}}</div>
@endif

В файле Blade сообщение об успехе .

@if (\Session::has('success'))
    <div class="alert alert-success">
        <ul>
            <li>{!! \Session::get('success') !!}</li>
        </ul>
    </div>
@endif

Подробнее о findOrFail

0 голосов
/ 04 ноября 2019

Я верю, что вы близко. Попробуйте это:

 public function destroy($id)
{
    $status = 'success';
    $statusMsg = 'Data Deleted';

    try {
        $category = Category::find($id);
        $category->delete();
    } catch (QueryException  $e) {
        $status = 'success';
        $statusMsg = $e;

        return redirect()->back()->with($status, $statusMsg);
    }

    return redirect()->route('category.index')->with($status, $statusMsg);
}

Дайте мне знать, если это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...