语法错误,意外' {' - Laravel

时间:2016-03-15 11:21:17

标签: php laravel laravel-blade

---错误信息

  BooksController.php第66行中的

FatalErrorException:语法错误,   意外的' {'

- 第66行

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

--- CODE

   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 ]
        );
    }

提前致谢

3 个答案:

答案 0 :(得分:1)

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

试试这个:

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 ]
        );
    }

答案 1 :(得分:1)

无法在控制器中使用{{ }} 刀片式语法

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

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

在控制器中,只需写

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

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

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

请参阅以下链接以便更好地理解。

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

答案 2 :(得分:0)

为什么要在控制器中使用刀片语法?从控制器中删除刀片语法

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 ]
    );
}