语法错误,意外的“{”- Laravel

syntax error, unexpected '{' - Laravel

---错误信息

FatalErrorException in BooksController.php line 66: syntax error, unexpected '{'

--第66行

$book = DB::table('books')->where('id', $id)->first();

---代码

   public function request(Request $request, $id) {
        $book = DB::table('books')->where('id', $id)->first();
        $user_id = {{ Auth::guard('web')->user()->id }} 
        DB::table('book_requests')->insert(
            ['book_id' => $book->id, 'user_id' => $user_id ]
        );
    }

提前致谢

您不能在控制器中使用 {{ }} 构造,只能在视图中使用。

试试这个:

public function request(Request $request, $id) {
        $book = DB::table('books')->where('id', $id)->first();
        $user_id = Auth::guard('web')->user()->id;
        DB::table('book_requests')->insert(
            ['book_id' => $book->id, 'user_id' => $user_id ]
        );
    }

为什么在控制器中使用 blade 语法?从控制器

中删除 blade 语法
public function request(Request $request, $id) {
    $book = DB::table('books')->where('id', $id)->first();
    $user_id = Auth::guard('web')->user()->id;
    DB::table('book_requests')->insert(
        ['book_id' => $book->id, 'user_id' => $user_id ]
    );
}

不能在控制器中使用{{ }}blade语法

只能在 .blade.php 文件中使用它。

{{ 'string' }} 表示 <?php echo 'string' ?>

在controller中,只写

$user_id = Auth::guard('web')->user()->id;

并在视图(blade 模板)文件中,通过

打印
{{ $user_id }} // equal to <?php echo $user_id; ?>

请参阅下文 link 以便更好地理解。

https://laravel.com/docs/5.1/blade