مهرداد
4 سال پیش توسط مهرداد مطرح شد
13 پاسخ

سوال در مورد توضیحات مقاله در لاراول

سلام دوستان من موقعی که توضیحات مقاله رو مینویسم میخام اسپیس ها و اینترهایی که موقع نوشتن توی پنل رعایت کردم موقع نمایشش هم همون شکلی برام بیاد اما این شکلی میشه راه حلش چیه؟
توضیح تصویر رو وارد کنید


ثبت پرسش جدید
بامداد
@bamdad 4 سال پیش مطرح شد
1

این اصلا ربطی به لاراول ندارد
1- اول باید direction و text-align رو در css درست کنید
2- باید از ابزاری مانند ckeditor استفاده کنید , خود ckedit هر خط رو معادل یک تگ <p> در نظر می گیرد ( پیش فرض اینه )

اگر هم نخاید از تگ <p> استفاده کنید ؛ باید از تگ <pre> استفاده کنید که اصلا پیشنهاد نمیشه و مشکلات عجیبی داره چه در قالب چه در بحث SEO


مهرداد
@mehrdadroshanraee69 4 سال پیش آپدیت شد
0

@bamdadمن الان از ckeditor استفاده نمیکنم کلا از تکست اریا معمولی استفاده میکنم کلا برا بخش نظرات هم همینه کاربر نظر تایپ میکنه شاید چند خط رو اینتر بزنه ولی موقع نمایش خط ها متصل به هم هستن قبلا انجامش دادما الان حضور ذهن ندارم شده تو مخی برام ربطی به استایل css هم نداره موقع نمایش یه کاری با کد ها انجام میدادم که این اعمال میششد الان یادم نمیاد


پویا زورآوند
تخصص : برنامه نویس بک اند
@zouravand 4 سال پیش مطرح شد
0

فکر کنم منظورت استفاده از این توی css هست.

یه تست کن ببین کارو راه میندازه؟

white-space: pre-line;

مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

دوست خوبم قالبی که من استفاده میکنم یه قالب مدرن و حرفه ایه نقصیاز بابت css نداره توی توضیحات مقاله وقتی من توی پنل توضیحات رو ست میکنم میخام به همون روش که تایپ کردم اینتر ها - اسپیس ها همون شکلی هم توی نمایش نشون داده بشه مثلا من توی پنل این مدلی توضیحات رو فرستادم برای سمت دیتابیس

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است،
چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است،
و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد،
کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت

اما موقع نمایش

{!!$article->body!!}

به این شکل در میاد ک توی خط بعد گذاشتک یعنی خط ها که من اینتر زدم بهم وصل میشه

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است، چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است، و برای شرایط فعلی تکنولوژی مورد نیاز، و کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد، کتابهای زیادی در شصت و سه درصد گذشته حال و آینده، شناخت فراوان جامعه و متخصصان را می طلبد، تا با نرم افزارها شناخت


بامداد
@bamdad 4 سال پیش آپدیت شد
0

دوست عزیز متوجه شدم ، باید این کار رو انجام بدی

هنگام ارسال باید در textarea ، این attribute را اضافه کنی :

<textarea rows="10" cols="50" name="usrtxt" wrap="hard">

در واقع باید از wrap و با مقدار hard استفاده کنی ، همچنین cols رو هم باید مشخض کنی ولی rows اجباری نیس

از اون سمت هم موقع دریافت هرجایی که میخوای نمایش داده بشه باید به این صورت باشه


<p style="white-space: pre-wrap;">
    // masalan inja namayesh midi matno
</p>

در واقع باید white-space رو برابر با اون مقداری که گفتم بنویسی تا هموجوری نمایش داده بشه

نتیجه گیری :

برای دریافت از wrap=hard استفاده کن که همانطور که نوشته شده دریافت بشه
برای چاپ هم از white-space=pre-wrap استفاده کن که متن رو به همون صورت که ذخیره شده ، نمایش بده


پویا زورآوند
تخصص : برنامه نویس بک اند
@zouravand 4 سال پیش مطرح شد
0

خروجی این کد چی هست؟

dd($article->body);

مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@bamdad
سپاسگذارم


بامداد
@bamdad 4 سال پیش مطرح شد
0

درست شد؟ مشکل همین بود ؟


مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@bamdad بله ممنون از این روش اوکی شد مچکر


مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@zouravand حل شد مچکرم


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
1

یک روش رایج دیگه هم استفاده از تابع nl2br هست. یعنی موقع نمایش این جور متن ها کافیه به این شکل عمل کنید:

{!! nl2br($article->body) !!}

کار این تابع تبدیل کردن new line ها به break line یا همون تگ <br> هست.

پ ن: مراقب مسائل امنیتی هنگام استفاده از {!! !!} باشید.


مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@mhyeganeh
محمد عزیز من فقط برای بخش توضیحات مقالات یا پرداکت ها از این {!! !!} استفاده میکنم فقط


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
0

مسئله ای سر تعداد موارد استفاده ازش وجود نداره. نکته مهمش فقط این هست که نباید از این روش برای رندر و نمایش مواردی استفاده کنید که توسط مخاطبان عام وبسایتتون نوشته شدند. مثل متن کامنت و پیام و...
چون اینجوری امکانش فراهم میشه که بجای متن پیام، یک تکه کد جاوااسکرپیتی مخرب یا جاسوسانه نوشته بشه و شما با این روش اون کد رو بدون اینکه خودتون خبر دار بشید اجراش می‌کنید.

ولی اگر از محتوای داخلی مواردی که میخواید ازش استفاده کنید خاطر جمع هستید مسئله ی خاصی نباید وجود داشته باشه.

ضمنا یک روش دیگه هم اینه که پیش از رندر کردن مقدار مورد نظر اون رو به تابع e() در لاراول پاس بدید تا ضدعفونی 😉 بشه.

{!! nl2br(e($article->body)) !!}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام