رفتن به مطلب
انجمن پشتیبانی لاراول ایران

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

Recommended Posts

 سلام به همه دوستان عزیز.

من  می خوام در پروژه خودم vue.js استفاده کنم اما به مشکل بر خورد کردم. این کد های من است در فایل app.js است در واقع هر چی alert می کنم هیچ alert ی به من نشون نمیده؟

npm و vue.js هم نصب کردم همه چی درست است. اما وقتی پیشوند blade.php. را به html تغییر میدم همه چی درست کار میکنه اما وقتی آن کد ها را به blade.php. تغییر میدم کار نمیکنه؟

آی دی app هم در صفحه خودم قرار دادم اما کار نمیکنه؟app.thumb.png.9322e313e21984d63a5b192c25d1ec1d.png

Share this post


Link to post
Share on other sites

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

سلام امیدوارم که حال خوب باشه سامان

برای استفاده از vue js شما باید کامپوننت بسازید به این صورت

//app.js
Vue.component('exmaple',required('components/Exmaple.vue'));
//Code


//Example.vue

<template>
  //Code
</template>

برای پاس دادن باید داخل blade به صورت نوشت

<example></example>	

 

Share this post


Link to post
Share on other sites

با سلام .

مشکل قبلی من حل شد. اما یک مشکل دیگه بوجود آمد.
من داخل پروژه لاراول خودم از vue.js استفاده می کنم.
الان می خوام اطلاغات وارد دیتابیس کنم اما هر کاری می کنم داخل دیتابیس ذخیره نمیشه؟
این کد های کنترلر من است:

این روت من:

این blade من:

اگه عکس ها رو باز کنید مشخصه.

لطفا راهنمایی کنید.

 


 

controller.png

route.png

blade.png

Share this post


Link to post
Share on other sites

سلام

سامان جان شما به خاطر این از لاراول استفاده میکنید که MVC هست اول از همه باید عرض کنم کدهای شما هر چقدر هم درست باشه از نظر من و هر کسی که لاراول کار میکنه غلطه چون که شما اصلا معماری MVC رو رعایت نکردین و کلا کارتون اشتباهه.چون من تو کد هاتون Model نمیبینم

دومین راهنمایی که میتونم بهتون بدم اینه که میتونید از قسمت setting---font رو تغییر بدین فونت Fira Code بهترین انتخاب برای نمایش بهتر کاراکتر های فارسی هست

کدهای شما برای ذخیره به این صورت خواهد بود

مدل خودمون رو میسازیم و اگر نیازی برای رابطه در دیتابیس ها بود در این قسمت ایجاد میکنیم و مقایری که نیاز هست رو برای دیتابیس ارسال بشه رو اینجار در fillable ذکر میکنیم

=========== Model===========
 protected $fillable = [
        'name',
        'description',
        'image',
        'tags',
        'price',
        'status',
        'category_id',
    ];
/// Example

حالا نوبت کنترلر خودمون هست که بسازیم در متد Store ما ابتدا نیاز داریم یک متغیر تعریف کنیم و یک آبجکت جدید میسازیم البته من در اینجا اعتبارسنجی ها رو نمیگم. بعد دستورات خودمون رو باید داخل try ,catch میندازیم تا به نحوی خطاهای خودمون رو هندل یا مدیریت کنیم.

در اینجا ما شئی جدید از دیتابیس که به نام محصول یا product ساخته بودیم رو بتا دستور create میگیم که این رو بساز اما چه چیزی رو برای ما باید بسازه ؟؟؟ خب مسلم هست ما چه چیزی رو میخوایم در دیتا بیس ایجاد کنیم ما میخواهیم درخواست هایی که از طرف یک انسان در فرم ما ارسال میشه رو در قالب یک ستون در پایگاه داده خودمون بسازیم و ثبت کنیم .پس میگوییم همه درخواست هایی که به طرف شما ارسال میشود را ثبت کن (اشاره به کد داخل try )

سپس خطاهایی که وجود دارد رو میتوینم جوری باهاشون برخورد کنیم که کاربر نبیته چون شکل بهتری داشته باشه سایت ما پس من اومدم از Exeption استفاده میکنم .و میگم اگر شما با خطای 23000 دیتا بیس مواجه شدی بیا و یک پیامی به صفحه alert من بفرست . پیام هم داخل متغیر msg قرار دادم . در غیر این صورت من پیامی موفقیت آمیز به صفحه هشدار میفرستیم.

=========== Controller =========== 
public function store(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|max:255',
            'price' => 'number',
        ]);
        $product = new Product();
        try {
            $product->create($request->all());

        } catch (Exception $exception) {
            switch ($exception->getCode()) {
                case  '23000' :
                    $msg = 'مقدار تکراری و عدم ثبت در دیتابیس';
                    return redirect(route('product.index'))->with('warning', $msg);
            }
        }
        $msgsuccess = 'با موفقیت انجام شد';
        return redirect(route('product.index'))->with('success', $msgsuccess);
    }
	
	
	

حالا من نیاز به روت دارم برای مسیر دهی به صفحاتم پس به این دو صورت میتونم عمل کنم. روت ها مباحث ساده ای هستن نیاز به توضیح ندراه.

=========== Routing =========== 

Route::group(['prefix' => '/admin/product', 'middleware' => 'auth'], function () {

//////Routes

});

========Or =========

Route::resource('product', 'ProductController')->except([
    'create', 'store', 'update', 'destroy'
]);

این صفحه هشدرا های من هست اگر به مباحث error handeling در مستندات لاراول نگاه کنید هست نکته این هست اگر در کنترلر نگاه کنید ما دو عدد session به این صفحه تحت عنوان Warning ,     Success فرستادیم و برای آن ها استایل هایی متفاوت هم میتوانیم تعریف کنیم.




=========== صفحه ای برای نمایش ارورها در سایت =========== 
@if ($errors->any())

    @foreach ($errors->all() as $error)
        <ul>
            <li style="color: red;margin: 1rem;" class="font_bold">{{ $error }}</li>
        </ul>
    @endforeach
@endif

@if (session('warning'))
    <h3 style="color: green; text-align: center;" class="font_bold"> {{session('warning')}} </h3>
@endif

@if (session('success'))
    <h3 style="color: green; text-align: center;" class="font_bold"> {{session('success')}}</h3>
@endif


حالا برای نمایش ارور ها در داخل blade به این صورت عمل میکنیم کافی است برای نمایش خطا ها ما صفحه blade خطا ها را incloud کنیم .

نمایش خطا ها در ویو

@incloud('alert.alert')

فرم برای ارسال داده 
<form meethod="POST" action="{{route('store')}}"> 
@csrf
  ///Inputs
</form>

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

موفق باشین ;)

Share this post


Link to post
Share on other sites

با سلام مجدد.

ممنون که راهنمایی کردید.

تمام این کار ها رو امتحان کردم اما مشکل حل نشد!!!

من model دارم اما عکسشو ننداختم.

توجه که من می خوام  با متود Mcategory که برای خودم تعریف کردم با استفاده از vue.js اطلاعاتی وارد دیتابیس کنم.

که اطلاعات من فقط name است.

در واقع بدون تگ form و فقط با متود app که در vue.js است.

این فایل app من است:

همون متود Mcategory است.

و این هم model:

و بقیه فایل در پیام قبلی است.

فقط یه چیز دیگه اینه که و قتی می خوام اطلاعات رو ثبت کنم در داخل console مرورگر این خطا رو میده:

 

app.png

model.png

console.png

Share this post


Link to post
Share on other sites
در 7 ساعت قبل، 0000Saman گفته است :

فقط یک سوال دیگه خدمتتون داشتم این بود که مشکلی نیست متود app در vue.js در داخل فوتر خودم باشه. در واقع متود app داخل app.js نباشه؟ 

سلام دوست گرامی

بهتره که پیام ها تون رو در قالب یک پیام بفرستید به جای تشکر میتونید با لایک منظور خودتون رو برسونید

بهتره style و methods ها در ویو مربوط به خودش باشه که مشخص باشه تا زمانی که پروژه بزرگ شد گیج کننده نباشه

 

سپاس از اینکه قوانین رو رعایت میکنید:)

Share this post


Link to post
Share on other sites

سلام خدمت دوستان.

من می خوام منو طراحی کنم اما به مشکل خوردم.

مشکل من اینه که admin وقتی میاد یک منو رو به عنوان سرگروه انتخاب می کنه به عنوان مثال منویی به نام a و با 1=id و 0=parent_id ( سر منو رو طوری طراحی کردم که هر سر منویی وارد شد parent_idش بشه 0) وارد کرد.

وقتی admin آمد زیر منویی را به a وارد کرد مثلا b آن وقت id و parent_id این زیر منو میشه 2=id و 1=parent_id و با این اوصاف b زیر منو a میشه.

الان وقتی مدیر بیاد a رو حذف کنه b میمونه؟؟؟

من می خوام این طور نباشه در وقتی سرگروه یعنی a حذف میشه b هم خذف بشه.

این کد های کنترلر منه:

ممنون میشم جواب بدید.

menu.png.8c50a6e2a9bbc677a8108693381f0c63.png  

Share this post


Link to post
Share on other sites

سلام دوستان

من از یک تمپلیت داشبورد ادمین توی پروژه م استفاده کردم. الان تنظیمات رو انجام دادم و پروژه با قالب جدید نشون داده میشه.

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

در ضمن فایل های css و js خود قالب رو توی webpack.mix.js قرار دادم و خروجی شون رو توی فایل index.blade.php استفاده کردم.

الان فایل های استایل درست هستن، فقط فایل js ظاهرا مشکل داره.

ممنون میشم راهنمایی بفرمایید.

Share this post


Link to post
Share on other sites

وارد این گفتگو شوید

میتوانید پیام خود را ارسال کنید و بعد ثبت نام نمایید. در صورتی که حساب کاربری دارید, هم اکنون وارد شوید و در این گفتگو شرکت کنید.

مهمان
پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  Only 75 emoji are allowed.

×   لینک شما به صورت اتوماتیک جایگذاری شد.   نمایش به عنوان یک لینک به جای

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • جدید...