我是第一次使用刀片,并且我添加了一条注释行。但运行页面时抛出异常,发现注释行也被执行。
评论行:
<!-- {!! !!} changed to {{ }}. ref : https://laravel.com/docs/5.5/blade -->
Run Code Online (Sandbox Code Playgroud)
错误异常:
<!-- <?php echo !!} changed to <?php echo e(}}. ref : https://laravel.com/docs/5.5/blade -->
Run Code Online (Sandbox Code Playgroud) 我有一个联系表单,提交后可以成功发送到数据库。问题是当我在网页上检查验证时。使用 Laravel $error 验证可以正确显示错误。问题是,当出现错误时,我的网页总是重定向回主页,而不是页面仍然显示错误。我必须继续向下滚动到我的联系表所在的位置才能看到错误;这会惹恼我未来的用户。如果出现错误,如何使页面保持在原来的位置?注意:当表单有效并提交时,我的页面会正确重定向。这不是问题。注 2:我创建了一个单页网页,导航链接会将您带到该网页。没有重定向。相反,它是一个 HTML 页面。
网页.php
Route::get('/', 'HomeController@index')->name('home');
Route::post('/contact/submit', 'MessagesController@submit');
Run Code Online (Sandbox Code Playgroud)
消息控制器.php
namespace App\Http\Controllers;
use App\Message;
use Illuminate\Http\Request;
class MessagesController extends Controller
{
public function submit(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|min:2',
'email' => 'required|max:255',
'phonenumber' => 'required|min:10|max:10',
'message' => 'required|min:5',
]);
Message::create($validatedData);
return redirect('/')->with('success', 'Your message has been
successfully sent. We will reach out to you soon');
}
}
Run Code Online (Sandbox Code Playgroud)
contact.blade.php
{{--CONTACT FORM--}}
<section id="contact">
<div class="container-fluid padding">
<div class="row text-center padding">
<div class="col-12">
<h2 class="lead display-3">Contact …Run Code Online (Sandbox Code Playgroud) 我有一个问题,我使用相同的刀片模板来创建和插入。在我的控制器中,我在编辑功能和我使用的方法模板上创建了一个变量 ModificationMode isset()。
控制器
public function edit($id)
{
$ModificationMode = 0;
$DataPraticien = \App\Praticien::find($id);
return view('AjoutePraticien', compact('DataPraticien'))->with('ModificationMode', $ModificationMode);
}
Run Code Online (Sandbox Code Playgroud)
看法
@if(isset($ModificationMode))
<form method="post" action="{{route('prat.update', $DataPraticien ?? '')}}">
@csrf
@method('PATCH')
@else
<form action="{{route('prat.store')}}" method="post">
@endif
//stuff
//stuff
Run Code Online (Sandbox Code Playgroud)
我将每个变量设为可选。这是一个好主意吗?这种方法会给我带来一些问题吗?安全怎么样?
我一直在用纯原生 html 和 php 开发一个项目,我想将其转移到 laravel。现在,当我想在另一个页面(另一个刀片文件)内显示 iframe(刀片文件)时,我陷入了困境。父页面正在显示,但 iframe 出现 404(未找到)错误。下面是我的代码:
请注意,这两个文件位于“view”目录中的同一文件夹中。
父.blade.php
<iframe src="child.blade.php">Your browser isn't compatible</iframe>
路线
Route::group(['prefix' => 'parent'], function () {
Route::get('/', 'ParentController@index');
Route::get('/child', 'ParentController@child');
});
Run Code Online (Sandbox Code Playgroud)
控制器
public function index()
{
return view('folder/index');
}
public function child()
{
return view('folder/child');
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此库导入拖放编辑器
但我收到这些错误
jquery.min.js:2 Uncaught TypeError: Cannot read property 'replace' of undefined
at initModalSource (examples.js:96)
at HTMLDocument.<anonymous> (examples.js:3)
at e (jquery.min.js:2)
at t (jquery.min.js:2)
initModalSource @ examples.js:96
(anonymous) @ examples.js:3
e @ jquery.min.js:2
t @ jquery.min.js:2
setTimeout (async)
S.readyException @ jquery.min.js:2
(anonymous) @ jquery.min.js:2
e @ jquery.min.js:2
t @ jquery.min.js:2
setTimeout (async)
(anonymous) @ jquery.min.js:2
c @ jquery.min.js:2
fireWith @ jquery.min.js:2
fire @ jquery.min.js:2
c @ jquery.min.js:2
fireWith @ jquery.min.js:2
t @ jquery.min.js:2
setTimeout (async)
(anonymous) @ jquery.min.js:2
c @ …Run Code Online (Sandbox Code Playgroud) 我正在 Laravel 8 中的某些地方使用 x 组件构建一个网页。组件是存在于所有页面中的模式,但其内容必须根据调用它的页面而改变。
我的想法如下:
问题是x-insert-section似乎没有在$pageid中接收任何值。
代码如下:
我的 IndexController.php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Page;
use App\Models\Entry;
use Illuminate\Http\Request;
class IndexController extends Controller
{
public function init(Request $request)
{
$page = Page::where('slug', '/')->first();
return view('index', [
'page' => $page,
'entries' => Entry::where('page', $page->id)->get(),
'pageid' => $page->id
]);
}
}
Run Code Online (Sandbox Code Playgroud)
index.blade.php 加载 x 组件的部分
<x-insert-section :pageid="$pageid"></x-insert-section>
<x-insert-jumbo-image :pageid="$pageid"></x-insert-jumbo-image>
Run Code Online (Sandbox Code Playgroud)
InsertSection.php …
所以我正在使用 Inertia 和 Vue 开发 Laravel 8 应用程序。
这个想法是,大多数页面都是 Laravel + Blade(有利于 SEO、快速加载等...),但对于需要大量用户交互的选定页面,我在 Blade 模板中插入一个 Vue 组件,其中需要交互即将发生。
return Inertia::render('vueComponent')对于 Inertia,这是通过在 Laravel Route 调用的 Controller 中调用 Vue 组件来完成的。数据可以传递到 Vue 实例,甚至传递到 Blade 模板,所以这很好(见下文)。
namespace App\Http\Controllers;
use Inertia\Inertia;
class RangePageController extends Controller
{
public function show(string $lang='fr')
{
// Strip the trailing slash from $lang
$lang = Str::before($lang, '/');
return Inertia::render('ProductsGallery', ['bar' => "Hello World"])->withViewData(['lang' => $lang]);
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,文件“/resources/views/app.blade.php”使用 Vue 组件呈现,替换 @inertia 指令(加上一些 Vue 数据)。整洁的。
默认情况下,使用 Blade 布局文件“app.blade.php”。该文档指定可以更改默认值:Inertia\Inertia::setRootView('name');。
问题:有没有办法在从控制器调用不同页面时选择不同的 …
我在 Laravel 中遇到了这个非常奇怪的问题。
我遇到一个问题,我的组件视图之一无法读取其类中定义的变量。这有点奇怪,因为我的项目中运行了几个组件,除了这个之外,它们都工作正常。
所以我创建了一个新的 Laravel 项目来测试一些东西(想检查问题是否出在我这边,也许我以某种方式弄乱了项目文件)。
我使用在空白项目上创建了一个新组件php artisan make:component Test
然后我简单地将一个测试变量添加到类组件中,如下所示:
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class Test extends Component
{
public $test;
/**
* Create a new component instance.
*
* @return void
*/
public function __construct()
{
$this->test = "testing";
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\View\View|string
*/
public function render()
{
return view('components.test');
}
}
Run Code Online (Sandbox Code Playgroud)
并尝试在视图中访问它,如下所示:
<div>
<p> {{$test}} </p>
</div>
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这不起作用,我不明白为什么。它只是说这$test是未定义的。也许我应该指出,我是 Laravel 的初学者,所以如果我犯了一些明显的错误,请原谅。这看起来很奇怪,这不适用于一个空白项目。 …
在旧式的 Laravel Blade 模板中,我们使用@section('section-name')以下方式:
{{-- h1para.blade.php --}}
<h1>
@section('heading')
Heading from Template
@endsection
</h1>
<p>
@yield('details')
</p>
Run Code Online (Sandbox Code Playgroud)
然后扩展该模板:
{{-- content.blade.php --}}
@extends('h1para')
@section('details')
Content from content page
@endsection
Run Code Online (Sandbox Code Playgroud)
在上面,我渲染的 HTML 输出如下所示,因为'heading'扩展文件中的“缺失”部分意味着我们默认返回模板中的内容:
<h1>Heading from Template</h1>
<p>Content from content page</p>
Run Code Online (Sandbox Code Playgroud)
但在新的组件做事方式中,我这样做:
<h1>Heading from Template</h1>
<p>Content from content page</p>
Run Code Online (Sandbox Code Playgroud)
如果您还没有收集到,问题是:如何为槽的内容设置默认值,这样如果扩展组件/模板中没有提供它,它就会回退到该默认值?
(我已经完成了搜索,但无法找到之前提出的相同问题)
我应该补充一点,我已经看到了解决方案(在 Laravel 文档中):
{{-- .../components/h1para.blade.php --}}
<h1>{{ $heading }}</h1>
<p>{{ $slot }}</p>
Run Code Online (Sandbox Code Playgroud)
但这似乎仅适用于默认值是易于管理的短字符串的情况。如果默认是很长的 HTML 流,那么它就无法满足我的需求。
重申一下:问题的关键在于默认内容可能是一长串 HTML。通过传入字符串(无论是否格式化为 HTML)来解决问题无法满足我的实际需求。
所以之前,用laravel MIX,在webpack.mix.js文件中,你可以这样写
mix.js('resources/js/app.js', 'public/js')
.js('resources/js/header.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.sass('resources/sass/main.scss', 'public/css')
.sass('resources/sass/header.scss', 'public/css')
Run Code Online (Sandbox Code Playgroud)
并将其public/asset单独编译。就像 JS 文件将被编译为public/asset/jssass 文件一样public/asset/css。当您将文件放入head视图blaze.php中时,您只需编写
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<link rel="stylesheet" href="{{ asset('css/main.css') }}">
<link rel="stylesheet" href="{{ asset('css/header.css') }}">
<script type="text/javascript" src="{{ asset('js/app.js') }}"></script>
<script type="text/javascript" src="{{ asset('js/header.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)
我如何将其与现在的 Laravel-Vite 结合起来?因为当我运行npm run dev单独的文件scss并js在一个文件夹中一起编译时,该文件夹是public/build/assets/. 他们没有区分js文件是否进入js文件夹和scss文件是否进入css文件夹。
这是我的样子vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export …Run Code Online (Sandbox Code Playgroud) laravel ×10
laravel-blade ×10
php ×3
crud ×1
html ×1
iframe ×1
inertiajs ×1
javascript ×1
jquery ×1
laravel-vite ×1
vite ×1
vue.js ×1