Laravel 6-Vue错误编译模板,意外令牌“>”

时间:2019-12-30 20:31:47

标签: php laravel vue.js laravel-6

我在Laravel中制作了一个迷你CMS,可以在其中创建,编辑和删除自己的布局文件。为此,我制作了带有刀片扩展名的文件,将数据放入其中并将其保存在我的layouts/layouts目录中,以便可以使用它们。我还将它们存储在数据库中,并且每当更改布局时,文件也会被更新。一切正常,但是我想在控制台中使用VUE,它说Cannot find element '#app'.我知道如何通过将<script src="{{ asset('js/app.js') }}"></script>行从文件顶部移至底部来解决此问题。对于我所有的视图,它都可以正常工作,除了可以编辑布局的视图。

我个人认为问题在于更新数据后将数据放回文件中的方式。这是更新文件的代码

public function update(Request $request, $id)
    {
        $layout = Layout::find($request->id);
        $file = resource_path('views/layouts/layouts/' . $layout->filename);
        file_put_contents($file, $request->content, FILE_IGNORE_NEW_LINES);
        $newName = resource_path('views/layouts/layouts/' . Str::camel($request->name) . ".blade.php");
        rename($file, $newName);

        $layout->name = $request->name;
        $layout->filename = Str::camel($request->name) . ".blade.php";
        $layout->content = $request->content;

        $layout->save();

        return redirect('/dashboard/layouts');
    }

这些是路线(即使将脚本移至底部,但编辑布局路线除外,该路线也可以正常工作

Route::get('/dashboard/layouts', 'LayoutController@index')->name('layouts');
Route::get('/dashboard/layout/create', 'LayoutController@create')->name('create_layout');
Route::post('/dashboard/layout/store', 'LayoutController@store')->name('store_layout');
Route::get('/dashboard/layout/{id}/edit', 'LayoutController@edit')->name('edit_layout');
Route::delete('/dashboard/layout/{id}/delete', 'LayoutController@destroy')->name('delete_layout');
Route::patch('/dashboard/layout/{id}/update', 'LayoutController@update')->name('update_layout');

这是我得到的错误 enter image description here

这是脚本需要移到底部的路径。

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}"></script>
    <script src="{{ asset('js/jquery-ui.js') }}"></script>
    <script src="{{ asset('js/Sortable.js') }}"></script>
    <script src="{{ asset('js/jquery-sortable.js') }}"></script>
    <script src="{{ asset('js/codemirror.js') }}"></script>
    <script src="{{ asset('js/main.js') }}"></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    <link href="{{ asset('css/all.min.css') }}" rel="stylesheet" >
    <link href="{{ asset('css/codemirror.css') }}" rel="stylesheet" >
    <link rel="stylesheet" href="{{ asset('css/styles.css') }}">
</head>
<body style="background: #ffffff">
<div class="">
    <nav class="sidebar">
        <ul class="list-unstyled">
            <li class="sidebar-item title">Information</li>
            <li class="sidebar-item"><a href="{{ route('home') }}" class="sidebar-link {{ Route::currentRouteNamed('home') ? 'sidebar-active' : '' }}">Dashboard</a></li>
            <li class="sidebar-item title">Content</li>
            <li class="sidebar-item"><a href="{{ route('pages') }}" class="sidebar-link {{ Route::currentRouteNamed('pages') ? 'sidebar-active' : '' }}">Pages</a></li>
            <li class="sidebar-item"><a href="{{ route('blocks') }}" class="sidebar-link {{ Route::currentRouteNamed('blocks') ? 'sidebar-active' : '' }}">Blocks</a></li>
            <li class="sidebar-item"><a href="{{ route('layouts') }}" class="sidebar-link {{ Route::currentRouteNamed('layouts') ? 'sidebar-active' : '' }}">Layouts</a></li>
            <li class="sidebar-item title">System</li>
            <li class="sidebar-item"><a href="{{ route('users') }}"  class="sidebar-link {{ Route::currentRouteNamed('users') ? 'sidebar-active' : '' }}">Users</a></li>
            <li class="sidebar-item"><a href="{{ route('roles') }}"  class="sidebar-link {{ Route::currentRouteNamed('roles') ? 'sidebar-active' : '' }}">Roles</a></li>
            <li class="sidebar-item title">Other</li>
            <li class="sidebar-item"><a href="">Preferences</a></li>
        </ul>
    </nav>

    <div class="dashboard-container">
      <div id="app">
          @yield('content')
      </div>
    </div>
</div>
</body>
</html>

我尝试通过文本编辑器(PHPStorm)而不是我自己的mini cms手动移动脚本,但是结果是相同的。我得到了那个大错误。您可以在错误消息中看到所有的/n新行,并且我尝试使用FILE_IGNORE_NEW_LINES来修复它,正如您在代码中看到的那样,但是它没有任何改变。是什么原因造成的?如何解决?

完整的错误消息(很长)

app.js:38033 [Vue warn]: Error compiling template:

invalid expression: Unexpected token '>' in

    "<!doctype html>\n<html lang=\""+_s(str_replace('_', '-', app()->getLocale()))+"\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n    <!-- CSRF Token -->\n    <meta name=\"csrf-token\" content=\""+_s(csrf_token())+"\">\n\n    <title>"+_s(config('app.name', 'Laravel'))+"</title>\n\n    <!-- Scripts -->\n    <script src=\""+_s(asset('js/app.js'))+"\" defer></script>\n\n    <!-- Fonts -->\n    <link rel=\"dns-prefetch\" href=\"//fonts.gstatic.com\">\n    <link href=\"https://fonts.googleapis.com/css?family=Nunito\" rel=\"stylesheet\">\n\n    <!-- Styles -->\n    <link href=\""+_s(asset('css/app.css'))+"\" rel=\"stylesheet\">\n    <link rel=\"stylesheet\" href=\""+_s(asset('css/styles.css'))+"\">\n\n</head>\n<body style=\"background: #ffffff\">\n    <div id=\"\">\n        <nav class=\"navbar navbar-expand-md navbar-light bg-white\">\n            <div class=\"container\">\n                <a class=\"navbar-brand\" href=\""+_s(url('/'))+"\">\n                    "+_s(config('app.name', 'Laravel'))+"\n                </a>\n                <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarSupportedContent\" aria-controls=\"navbarSupportedContent\" aria-expanded=\"false\" aria-label=\""+_s(__('Toggle navigation'))+"\">\n                    <span class=\"navbar-toggler-icon\"></span>\n                </button>\n\n                <div class=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\n                    <!-- Left Side Of Navbar -->\n\n\n                    <!-- Right Side Of Navbar -->\n                    <ul class=\"navbar-nav ml-auto\">\n                        <li class=\"nav-item\"><a class=\"nav-link\" href=\"\">About me</a></li>\n                        <li class=\"nav-item\"><a class=\"nav-link\" href=\"\">Projects</a></li>\n                        <li class=\"nav-item\"><a class=\"nav-link\" href=\"\">Services</a></li>\n                        <li class=\"nav-item\"><a class=\"nav-link\" href=\"\">Experiences</a></li>\n                    </ul>\n                </div>\n            </div>\n        </nav>\n\n        <main class=\"py-4\">\n            <div class=\"container mt-5\">\n                @yield('content')\n            </div>\n        </main>\n    </div>\n</body>\n</html>"

  Raw expression: <!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title>{{ config('app.name', 'Laravel') }}</title>

    <!-- Scripts -->
    <script src="{{ asset('js/app.js') }}" defer></script>

    <!-- Fonts -->
    <link rel="dns-prefetch" href="//fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">

    <!-- Styles -->
    <link href="{{ asset('css/app.css') }}" rel="stylesheet">
    <link rel="stylesheet" href="{{ asset('css/styles.css') }}">

</head>
<body style="background: #ffffff">
    <div id="">
        <nav class="navbar navbar-expand-md navbar-light bg-white">
            <div class="container">
                <a class="navbar-brand" href="{{ url('/') }}">
                    {{ config('app.name', 'Laravel') }}
                </a>
                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
                    <span class="navbar-toggler-icon"></span>
                </button>

                <div class="collapse navbar-collapse" id="navbarSupportedContent">
                    <!-- Left Side Of Navbar -->


                    <!-- Right Side Of Navbar -->
                    <ul class="navbar-nav ml-auto">
                        <li class="nav-item"><a class="nav-link" href="">About me</a></li>
                        <li class="nav-item"><a class="nav-link" href="">Projects</a></li>
                        <li class="nav-item"><a class="nav-link" href="">Services</a></li>
                        <li class="nav-item"><a class="nav-link" href="">Experiences</a></li>
                    </ul>
                </div>
            </div>
        </nav>

        <main class="py-4">
            <div class="container mt-5">
                @yield('content')
            </div>
        </main>
    </div>
</body>
</html>


1  |  <div id="app">
   |  ^^^^^^^^^^^^^^
2  |                <div class="container-fluid pt-5">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3  |          <div class="row">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^
4  |              <div class="col-md-12">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5  |                  <h3>Create new layout</h3>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6  |              </div>
   |  ^^^^^^^^^^^^^^^^^^
7  |          </div>
   |  ^^^^^^^^^^^^^^
8  |          <div class="row my-5">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9  |              <div class="col-md-6">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
10 |                  <form method="POST" action="http://rainierlaan.test/dashboard/layout/3/update">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 |                      <input type="hidden" name="_token" value="MXEoSb44dBa3l3lmtipDT843j50vTOTGcjXsP7eq">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12 |                      <input type="hidden" name="_method" value="PATCH">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13 |                      <div class="form-group">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14 |                          <label for="name">Name</label>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15 |                          <input type="text" class="form-control" name="name" value="app">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16 |                      </div>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^
17 |                      <div class="form-group">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18 |                          <label for="content" class="content">Content</label>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19 |                          <textarea name="content" id="" class="code-editor" cols="30" rows="10">&lt;!doctype html&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
20 |  &lt;html lang="{{ str_replace('_', '-', app()-&gt;getLocale()) }}"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21 |  &lt;head&gt;
   |  ^^^^^^^^^^^^
22 |      &lt;meta charset="utf-8"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
23 |      &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
24 |  
   |  
25 |      &lt;!-- CSRF Token --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26 |      &lt;meta name="csrf-token" content="{{ csrf_token() }}"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27 |  
   |  
28 |      &lt;title&gt;{{ config('app.name', 'Laravel') }}&lt;/title&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
29 |  
   |  
30 |      &lt;!-- Scripts --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^
31 |      &lt;script src="{{ asset('js/app.js') }}" defer&gt;&lt;/script&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
32 |  
   |  
33 |      &lt;!-- Fonts --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^
34 |      &lt;link rel="dns-prefetch" href="//fonts.gstatic.com"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
35 |      &lt;link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36 |  
   |  
37 |      &lt;!-- Styles --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^
38 |      &lt;link href="{{ asset('css/app.css') }}" rel="stylesheet"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39 |      &lt;link rel="stylesheet" href="{{ asset('css/styles.css') }}"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
40 |  
   |  
41 |  &lt;/head&gt;
   |  ^^^^^^^^^^^^^
42 |  &lt;body style="background: #ffffff"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
43 |      &lt;div id=""&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^
44 |          &lt;nav class="navbar navbar-expand-md navbar-light bg-white"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45 |              &lt;div class="container"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
46 |                  &lt;a class="navbar-brand" href="{{ url('/') }}"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
47 |                      {{ config('app.name', 'Laravel') }}
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48 |                  &lt;/a&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^
49 |                  &lt;button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
50 |                      &lt;span class="navbar-toggler-icon"&gt;&lt;/span&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 |                  &lt;/button&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52 |  
   |  
53 |                  &lt;div class="collapse navbar-collapse" id="navbarSupportedContent"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54 |                      &lt;!-- Left Side Of Navbar --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55 |  
   |  
56 |  
   |  
57 |                      &lt;!-- Right Side Of Navbar --&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
58 |                      &lt;ul class="navbar-nav ml-auto"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
59 |                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;About me&lt;/a&gt;&lt;/li&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60 |                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Projects&lt;/a&gt;&lt;/li&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
61 |                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Services&lt;/a&gt;&lt;/li&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
62 |                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Experiences&lt;/a&gt;&lt;/li&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
63 |                      &lt;/ul&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64 |                  &lt;/div&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
65 |              &lt;/div&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^
66 |          &lt;/nav&gt;
   |  ^^^^^^^^^^^^^^^^^^^^
67 |  
   |  
68 |          &lt;main class="py-4"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
69 |              &lt;div class="container mt-5"&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
70 |                  @yield('content')
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
71 |              &lt;/div&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^^^^
72 |          &lt;/main&gt;
   |  ^^^^^^^^^^^^^^^^^^^^^
73 |      &lt;/div&gt;
   |  ^^^^^^^^^^^^^^^^
74 |  &lt;/body&gt;
   |  ^^^^^^^^^^^^^
75 |  &lt;/html&gt;</textarea>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^
76 |                      </div>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^
77 |                      <div class="form-group">
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
78 |                          <button type="submit" class="btn btn-primary">Edit layout</button>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
79 |                      </div>
   |  ^^^^^^^^^^^^^^^^^^^^^^^^^^
80 |                  </form>
   |  ^^^^^^^^^^^^^^^^^^^^^^^
81 |              </div>
   |  ^^^^^^^^^^^^^^^^^^
82 |  
   |  
83 |          </div>
   |  ^^^^^^^^^^^^^^
84 |      </div>
   |  ^^^^^^^^^^
85 |        </div>
   |  ^^^^^^^^^^^^

(found in <Root>)
warn @ app.js:38033
(anonymous) @ app.js:49101
compileToFunctions @ app.js:49100
./node_modules/vue/dist/vue.common.dev.js.Vue.$mount @ app.js:49324
Vue._init @ app.js:42411
Vue @ app.js:42477
./resources/js/app.js @ app.js:49478
__webpack_require__ @ app.js:20
0 @ app.js:49616
__webpack_require__ @ app.js:20
(anonymous) @ app.js:84
(anonymous) @ app.js:87
app.js:46463 You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html
app.js:10265 jQuery.Deferred exception: Cannot read property 'value' of undefined TypeError: Cannot read property 'value' of undefined
    at Function.fromTextArea (http://rainierlaan.test/js/codemirror.js:9639:30)
    at HTMLDocument.<anonymous> (http://rainierlaan.test/js/main.js:17:29)
    at mightThrow (http://rainierlaan.test/js/app.js:9981:29)
    at process (http://rainierlaan.test/js/app.js:10049:12) undefined
jQuery.Deferred.exceptionHook @ app.js:10265
process @ app.js:10053
setTimeout (async)
(anonymous) @ app.js:10087
fire @ app.js:9715
fireWith @ app.js:9845
fire @ app.js:9853
fire @ app.js:9715
fireWith @ app.js:9845
ready @ app.js:10325
completed @ app.js:10335
app.js:10274 Uncaught TypeError: Cannot read property 'value' of undefined
    at Function.fromTextArea (codemirror.js:9639)
    at HTMLDocument.<anonymous> (main.js:17)
    at mightThrow (app.js:9981)
    at process (app.js:10049)
fromTextArea @ codemirror.js:9639
(anonymous) @ main.js:17
mightThrow @ app.js:9981
process @ app.js:10049
setTimeout (async)
jQuery.readyException @ app.js:10273
(anonymous) @ app.js:10293
mightThrow @ app.js:9981
process @ app.js:10049
setTimeout (async)
(anonymous) @ app.js:10087
fire @ app.js:9715
fireWith @ app.js:9845
fire @ app.js:9853
fire @ app.js:9715
fireWith @ app.js:9845
process @ app.js:10069
setTimeout (async)
(anonymous) @ app.js:10087
fire @ app.js:9715
fireWith @ app.js:9845
fire @ app.js:9853
fire @ app.js:9715
fireWith @ app.js:9845
ready @ app.js:10325
completed @ app.js:10335

编辑::

编辑视图

@extends('layouts.layouts.backend')

@section('content')
    <div class="container-fluid pt-5">
        <div class="row">
            <div class="col-md-12">
                <h3>Create new layout</h3>
            </div>
        </div>
        <div class="row my-5">
            <div class="col-md-6">
                <form method="POST" action="{{ route('update_layout', ['id' => $layout->id]) }}">
                    {{ csrf_field() }}
                    {{ method_field('PATCH') }}
                    <div class="form-group">
                        <label for="name">Name</label>
                        <input type="text" class="form-control" name="name" value="{{ $layout->name }}">
                    </div>
                    <div class="form-group">
                        <label for="content" class="content">Content</label>
                        <textarea name="content" id="" class="code-editor" cols="30" rows="10">{{ $layout->content }}</textarea>
                    </div>
                    <div class="form-group">
                        <button type="submit" class="btn btn-primary">Edit layout</button>
                    </div>
                </form>
            </div>

        </div>
    </div>
@endsection

1 个答案:

答案 0 :(得分:-1)

在刀片文件中,有一个文本区域为

<textarea name="content" id="" class="code-editor" cols="30" rows="10">
   {{ $layout->content }}
</textarea>

{{ $layout->content }}在您的DOM中产生了一些刀片语法,这也是Vue语法;但是这些不应该处理vue。因此,请尝试转义{{1 }}到{{ whateverValue }}

在我的情况下,在将它们保存或存储到数据库之前,我在控制器中执行以下代码。

\{\{ whateverValue \}\}

这里有两个演示

没有转义双大括号,导致错误

$body = preg_replace('/\{\{/','\{\{',$body);
$body = preg_replace('/\}\}/','\}\}',$body);
const app = new Vue({
    el: "#app",
    data: {}
    })

转义双大括号,不会出现错误

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
                <div class="container-fluid pt-5">
          <div class="row">
              <div class="col-md-12">
                 <h3>Create new layout</h3>
            </div>
          </div>
        <div class="row my-5">
              <div class="col-md-6">
                <form method="POST" action="http://rainierlaan.test/dashboard/layout/3/update">
                      <input type="hidden" name="_token" value="MXEoSb44dBa3l3lmtipDT843j50vTOTGcjXsP7eq">
                      <input type="hidden" name="_method" value="PATCH">
                      <div class="form-group">
                          <label for="name">Name</label>
                         <input type="text" class="form-control" name="name" value="app">
                     </div>
                      <div class="form-group">
                        <label for="content" class="content">Content</label>
                          <textarea name="content" id="" class="code-editor" cols="30" rows="10">&lt;!doctype html&gt;
  &lt;html lang="{{ str_replace('_', '-', app()-&gt;getLocale()) }}"&gt;
 &lt;head&gt;
     &lt;meta charset="utf-8"&gt;
      &lt;meta name="viewport" content="width=device-width, initial-scale=1"&gt;
       &lt;!-- CSRF Token --&gt;
      &lt;meta name="csrf-token" content="{{ csrf_token() }}"&gt;
      &lt;title&gt;{{ config('app.name', 'Laravel') }}&lt;/title&gt;
      &lt;!-- Scripts --&gt;
      &lt;script src="{{ asset('js/app.js') }}" defer&gt;&lt;/script&gt;
      &lt;!-- Fonts --&gt;
      &lt;link rel="dns-prefetch" href="//fonts.gstatic.com"&gt;
      &lt;link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet"&gt;
      &lt;!-- Styles --&gt;
     &lt;link href="{{ asset('css/app.css') }}" rel="stylesheet"&gt;
     &lt;link rel="stylesheet" href="{{ asset('css/styles.css') }}"&gt;
 &lt;/head&gt;
&lt;body style="background: #ffffff"&gt;
&lt;div id=""&gt;
&lt;nav class="navbar navbar-expand-md navbar-light bg-white"&gt;
 &lt;div class="container"&gt;

                 &lt;a class="navbar-brand" href="{{ url('/') }}"&gt;
                      {{ config('app.name', 'Laravel') }}
                  &lt;/a&gt;
                  &lt;button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{\{ __('Toggle navigation') }}"&gt;
                      &lt;span class="navbar-toggler-icon"&gt;&lt;/span&gt;
                  &lt;/button&gt;
                  &lt;div class="collapse navbar-collapse" id="navbarSupportedContent"&gt;
                      &lt;!-- Left Side Of Navbar --&gt;
   
                     &lt;!-- Right Side Of Navbar --&gt;
                      &lt;ul class="navbar-nav ml-auto"&gt;
                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;About me&lt;/a&gt;&lt;/li&gt;
                           &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Projects&lt;/a&gt;&lt;/li&gt;
                          &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Services&lt;/a&gt;&lt;/li&gt;
                         &lt;li class="nav-item"&gt;&lt;a class="nav-link" href=""&gt;Experiences&lt;/a&gt;&lt;/li&gt;
                      &lt;/ul&gt;
                  &lt;/div&gt;
              &lt;/div&gt;
          &lt;/nav&gt;
          &lt;main class="py-4"&gt;
              &lt;div class="container mt-5"&gt;
                  @yield('content')
              &lt;/div&gt;
          &lt;/main&gt;
      &lt;/div&gt;
  &lt;/body&gt;
  &lt;/html&gt;</textarea>
                      </div>
                      <div class="form-group">
                          <button type="submit" class="btn btn-primary">Edit layout</button>
                     </div>
                  </form>
              </div>
  
          </div>
      </div>
        </div>
const app = new Vue({
    el: "#app",
    data: {}
    })