我在文件中注册了一些组件作为全局组件js/app.js,但这使得编译后的app.js文件更大。
//example: app.js
Vue.component('profile-page', require('./components/profiles/ProfilePage.vue').default);
Run Code Online (Sandbox Code Playgroud)
问题是:有没有办法在 laravel-blade 文件中导入这些全局组件,而不是在app.js文件中全局注册它?
像这样的东西:
// laravel-blade file
<script>
import ProfilePage from ...;
</script>
Run Code Online (Sandbox Code Playgroud) 我有一些这样的代码
<div class="form-group">
<label for="tag">Tag</label><br>
<input type="text" data-role="tagsinput"
class="form-control form-control-lg @error('tag') is-invalid @enderror"
id="tag" name="tag[]" value="{{old('tag')}}" placeholder="Enter tag">
@error('tag') <div class="text-danger"> {{ $message }} </div> @enderror
</div>
Run Code Online (Sandbox Code Playgroud)
如何在 laravel Blade 中获取旧值数组,在这种情况下我想获取标签的旧值?
我用这样的形式发送文件
\n\n<input type="file" class="form-control" name="images[]" multiple enctype="multipart/form-data"/>\nRun Code Online (Sandbox Code Playgroud)\n\n但在控制器上$request->all()我只得到文件名
"images" => array:1 [\xe2\x96\xbc\n 0 => "just-before-hit.png"\n ]\nRun Code Online (Sandbox Code Playgroud)\n\n如何获取文件对象来存储它?
\n我知道 Laravel 的 Blade 模板位于 /resource/views 目录中。它的扩展名是.blade.php。
我的问题是我为前端设计人员设置了一个单独的存储库来处理刀片模板,并且该存储库设置为仅限推送任何带有.php扩展名的文件。
那么如果我将所有.blade.php文件更改为.blade文件会怎么样!通过这样做,laravel 无法优化视图文件。
我该如何管理它。
因此,我已经使用 UTC 在数据库中保存了任何日期,并且可以像 $data->created_at 或 $data->blocked_at 一样获取它。因此,在我的配置中,我将时区设置为 UTC,然后我想在查看时将其从 UTC 转换为 UTC+7 或其他时区。
有没有一种简单的方法可以在查看所有日期时转换我想要的时区?
我还在使用 Laravel 5.8
编辑:
我正在使用答案,但在我的基本模型上实现它,如下所示:
public function getDateConverter($key){
if(strtotime($this->{$key})){
$date = Carbon::createFromFormat('Y-m-d H:i:s', $this->{$key});
$date->setTimezone(env("APP_TIMEZONE_VIEW"));
return $date->toDateTimeString();
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我将像这样调用列名称 $data->getDateConverter("created_at");
我使用 Laravel 的命令生成了错误页面php artisan vendor:publish --tag=laravel-errors。
现在在里面,假设 404.blade.php 视图,我想获取 404 的状态代码并将其用于简单的 if-else 情况,但我不想包含任何标签并稍后获取变量,所以我下面尝试过
http_response_code()和app('Illuminate\Http\Response')->status()
但讽刺的是,两者有时都会返回 200 作为 http 响应代码,而我期望得到 404。
有什么问题?
我使用 Vee Validate v3 来验证使用 V-FOR 生成的动态输入,V-FOR 会根据用户操作添加或删除输入元素。
我的问题是只有最后一个输入得到验证,其他输入没有得到验证。在文档中,他们在使用 V-IF 和 V-FOR 文档链接时提到了这个问题
他们告诉我们使用 VueJS keep-alive组件。但不能与 V-FOR 一起使用。
<validation-observer ref="observer" v-slot="{ handleSubmit }">
<form method="POST" action="{{ route('app.store') }}" @submit.prevent="handleSubmit(onSubmit)" class="form" enctype="multipart/form-data">
<table class="table">
<thead>
<tr>
<th>SI No</th>
<th>input 1</th>
</tr>
</thead>
<tbody>
<tr v-for="(item, index) in items" :key="item.id">
<td>@{{ index + 1 }}</td>
<td>
<keep-alive>
<validation-provider rules="required" v-slot="{ errors }" name="attribute">
<div class="form-group">
<input :name="'attribute' + item.id" class="form-control" v-model="item.attribute">
<span class="error" role="alert">
@{{ errors[0] }}
</span>
</div>
</validation-provider>
</keep-alive> …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以将 Laravel Blade 用于多页面网站(电子商务)的一部分,并将 Inertia/Vue 用于某些特定页面(例如购物篮和管理页面)?不要将两者混合在同一页上,正如我在其他评论中看到的那样。
\n第一类是大量静态页面,需要快速加载和强大的 SEO 参考(产品页面和目录)。第二个不需要索引,但需要大量的用户交互。
\n我在我的第一个项目中尝试了一些东西,但是当 Inertia 处于活动状态时,我似乎无法调用 Laravel 路由。另外,在 Blade 页面中加载所有 Inertia 和 Vue 并没有什么意义。因此,作为初学者,我想我只需要在 Vue 页面(管理和购物篮)上加载 Inertia + Vue 代码。我想还有很多其他问题需要解决。
\n或者也许废弃 Inertia.js,只在 Vue 页面上加载普通的 Vue.js?但这意味着还要加载路由器和数据存储......
\n非常感谢您提供有关最佳继续方式的想法!\nE.
\n一切似乎都正常,但 VSCODE 在尝试时不断报告错误。说方法还没有定义。
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
public function index()
{
return view('auth.register');
}
public function store(Request $request)
{
//validation
$this->validate($request, [
'name' => 'required|max:50',
'username' => 'required|max:50',
'email' => 'required|email|max:250',
'password' => 'required|confirmed',
]);
//create new user
User::create([
'name' => $request->name,
'username' => $request->username,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
auth()->attempt($request->only('email','password'));
return redirect()->route('dashboard');
//sign the user in
//redirect
}
}
Run Code Online (Sandbox Code Playgroud)
这是 vscode 的问题还是我遗漏了什么?
我在 laravel 中有以下刀片组件。我正在使用顺风。位于views/components/indigo-button-sm.blade.php
<button {{ $attributes->merge(['type' => 'button', 'class' => 'inline-flex justify-center py-1 px-1 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500']) }}>
{{ $slot }}
</button>
Run Code Online (Sandbox Code Playgroud)
我希望能够即时更改组件。也就是说,我使用上面的组件来显示“保存”按钮。但随后我想显示一个按钮,上面写着“确认”您的输入,并稍微更改按钮的外观,以在视觉上暗示这是一个不同的选择。
具体来说,我有一个自动完成功能,用户正在输入一个我提供超过 2,000 个选择(学校)的项目。但是,如果用户输入的学校不在我的数据库表列表中,我希望他们确认他们输入的学校正确,所以我想显示“确认”您的输入按钮,只是为了确保。如果他们选择的学校已经在列表中,我不会要求他们确认输入。
所以,我想更改保存按钮
bg-indigo-600 hover:bg-indigo-700
Run Code Online (Sandbox Code Playgroud)
确认按钮的配色方案略有不同。
bg-indigo-800 hover:bg-indigo-900
Run Code Online (Sandbox Code Playgroud)
或者
<x-indigo-button-sm x-show="showsaveschool" wire:click="saveSchoolInfo">Save</x-indigo-button-sm>
<x-indigo-button-sm x-show="showconfirmschool" wire:click="confirmSaveSchoolInfo">Confirm</x-indigo-button-sm>
Run Code Online (Sandbox Code Playgroud)
因此他们输入学校,但该学校不在查找列表中。他们单击“保存”按钮。保存按钮消失,确认按钮显示,确认按钮下方会显示一段文本。
当我输入此内容时,我开始认为创建一个“确认”按钮并始终使用它会更好。
反正。我认为 $attributes(merge['']) 允许您更改属性,但我认为它只允许您添加属性。因此,如果您有一个边距类,在组件中说“my-0”,它似乎不允许新的类似类,例如“my-5”
我们将不胜感激您的评论。
laravel ×10
laravel-blade ×10
php ×4
vue.js ×2
inertiajs ×1
javascript ×1
laravel-5 ×1
laravel-6 ×1
vee-validate ×1
vuejs2 ×1