باگ blade لاراول و اخطار مربوط به فیلد متن از طریق old

1 هفته پیش توسط VaHiD آپدیت شد
آفلاین
user-avatar
سعید محمدی ( 5931 تجربه )
1 هفته پیش

لینک کوتاه اشتراک گذاری

0

سلام
یه فرم تماس با ما دارم مثلا وقتی ایمیل رو پر نمیکنم و بقیه فیلد هارو پر کردم وقتی لاراول اخطار برمی گردونه و چون از old() استفاده کردم
در فیلد textarea وقتی پیغامی که قبلا بصورت خط جدید ارسال کردم موقع برگشت خطوط رو حذف میکنه و تمام کلمات به هم چسبیده میشن دلیلش چیه؟

این فرم منه

<textarea name="message">{{ old('message') }}</textarea>

مثلا اینجوری پر میشه:
سلام
این یک متن آزمایشی هست
خدانگهدار

و اینجوری برگشت داده میشه :
سلاماین یک متن آزمایشی هستخدانگهدار

@hesammousavi
@websaz
@mohaligateway
@samanzdev
@rezajahangir
@ajdar۹۶۶۷
@juza۶۶
@mrn

آفلاین
user-avatar
فرشید مرادی ( 31263 تجربه )
1 هفته پیش
تخصص : noob

لینک کوتاه اشتراک گذاری

0

سلام وقت بخیر ، مشکل از کروشه هاس چون وقتی ما یک رشته رو داخل اینها قرار میدیم اون رو بعنوان یک رشته برمیگردونه و تابع htmlspecialchar رو اجرا میکنه...
اینو تست کنید

@php
echo old('message')
@endphp
آفلاین
user-avatar
رضا جهانگیر ( 21320 تجربه )
1 هفته پیش
تخصص : برنامه نویس PHP و Laravel

لینک کوتاه اشتراک گذاری

-1

سلام.
باید داخل مدل مربوطه متد زیر رو تعریف کنید.
فرض کنید من یه جدول دارم به نام comments، حالا باید داخل مدل Comment متد زیر رو اضافه کنم.

public function setCommentAttribute($value) {
    $this->attributes['comment'] = str_replace(PHP_EOL , "<br>" , $value);
}

شما با توجه به جدولی که دارید این متد رو تعریف کن.
موفق باشید.

آفلاین
user-avatar
سعید محمدی ( 5931 تجربه )
1 هفته پیش

لینک کوتاه اشتراک گذاری

0

سلام @rezajahangir

ممنون از پاسخ تون ولی من مدلی ندارم که بخوام این کارو کنم اطلاعات تماس با ما قرار مستقیما پس از دریافت در کنترلر ایمیل بشه
وحتی اگه مدلی هم داشتم این روش اصلا مناسب مشکلی که من گفتم نیست چون نمیخام هیچ کاراکتر html مثل تگ <br> در متنم باشه مشکل فقط اینه که new line رو حفظ نمیکنه

آفلاین
user-avatar
سعید محمدی ( 5931 تجربه )
1 هفته پیش

لینک کوتاه اشتراک گذاری

0

سلام @eniack

ممنون از پاسخ شما ولی این مورد هم قبلا تست کرده بودم ولی بازم کار نمی کرد و خطوط به هم میچسبند 🙏

آفلاین
user-avatar
سبحان مولایی ( 67734 تجربه )
1 هفته پیش
تخصص : برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS

لینک کوتاه اشتراک گذاری

0

سلام به احتمال بالا به دلیل utf 8 هست مطمئن بشید این کد در اول سند و در header html وجود داره منظورم مستر blade شما هست

<meta charset="UTF-8">
آفلاین
user-avatar
VaHiD ( 110 تجربه )
1 هفته پیش
تخصص : برنامه نویس #لاراول

لینک کوتاه اشتراک گذاری

2

سلام خسته نباشی🌹

از **nl2b** استفاده کنید احتمالا حل بشه*

مثال:

{!! nl2br(old('message')) !!}
برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.